c++程序員怎么搭建一個完整的個人網(wǎng)站?
時間:2023-12-03 11:18:02 | 來源:網(wǎng)站運營
時間:2023-12-03 11:18:02 來源:網(wǎng)站運營
c++程序員怎么搭建一個完整的個人網(wǎng)站?:2021.2.23:寫完后發(fā)現(xiàn)作者不想用第三方庫,那只能用socket自己實現(xiàn)一個簡單的http server了。但是數(shù)據(jù)庫交互不依賴第三方庫就很難手擼了,如果是做作業(yè)的話沒必要自討苦吃,不依賴第三方庫。
以下原文:
首先提醒一句:正經(jīng)人誰用C++寫web啊。
哈哈,開個玩笑。不過確實是,用C++寫web(也就是你說的個人網(wǎng)站的后臺)無疑是自討苦吃。我更推薦你用Python(flask或django)或者node.js。不推薦java web
不過呢,如果是站在學習的角度,我覺得倒也可以用C++玩玩看,或許會加深你對HTTP的理解。用C++寫web,你首先需要安裝一下Web Server,比如Apache或Nginx,然后只需要借助一個叫CGI的技術(shù)即可。
CGI其實是跨語言的通用網(wǎng)關(guān)技術(shù),但基本上其他語言都有自己的對應(yīng)技術(shù)(比如Java的Servlet,Python的WSGI等),所以CGI基本上只有C、 C++才會用到。
通過CGI你其實只需要關(guān)注標準輸入和輸出,從環(huán)境變量和標準輸入中提取HTTP請求的參數(shù),然后將HTTP的響應(yīng)(Header + Body)寫到標準輸出中。
當然,用C++組織HTML頁面的字符串太過復雜,且難以維護。這里還是推薦類似Restful的風格。就是前端和后端通過JSON來傳遞數(shù)據(jù),前端你自己寫好HTML、CSS的框框,然后寫一些JavaScript通過Ajax等技術(shù)去請求后端的CGI接口,將拿到的json,重新組織成DOM,渲染出來。
一個CGI程序,其實就是一個可執(zhí)行文件(有main函數(shù)),根據(jù)我前面的描述,其實你需要的不過是一個JSON的C++庫(比如RapidJson),另外由于個人網(wǎng)站涉及增刪改查,你還需要一個MySQL的C/C++ Client庫,可以從MySQL官網(wǎng)上找到C++ 的版本。
除此之外,如果你不想費力地去和環(huán)境變量、標準輸入、輸出打交道。你可以使用一個CGI的庫,比如cgicc,這個庫的年紀可能比你還大……
關(guān)于CGI的更多介紹,可以閱讀我寫的這篇文章:
說起來,可能像笑話,這種上個世紀90年代的技術(shù),如今還在鵝廠很多部門盛行著……
比如你打開QQ郵箱或者微信公眾號的管理平臺,在URL地址中,都能找到一個/cgi-bin/的目錄……