背景介紹
書到用時方恨少,工作之後才知道自己的知識有多麼的困乏,學識有多麼的淺薄。好在我的程式設計師工作不那麼苦逼,每天有大把的時間讓我學我學習,經《程式設計師》的推薦,花大價錢買了一本《深入理解計算機系統》,對於這本書,我的評價是——計算機知識的高品質富礦。於是我拿著這本書開始修煉內功,只恨學校沒有使用這本書當教材,只恨自己沒有早發現這本書。
言歸正傳,這個web伺服器出自《深入理解計算機系統》,我只是當打字員敲入電腦,試用和學習了一番,然後拿出來跟大家分享一下,大家如果有疑問去看原書效果更佳。
在terminal裡進入webserver目錄輸入
make
如果編譯成功的話,你的目錄下會生成tinyserver和tinythreadserver兩個可執行檔案,tinythreadserver是我在tinyserver基礎上實現的多執行緒版。
在terminal裡輸入
./tinyserver 8080
執行tinyserver,執行正確的話, terminal上會打出
server startup, ready bind to [8080]
接下來就可以使用瀏覽器向webserver發起http請求了,我使用的firefox瀏覽器,在位址列中輸入
瀏覽器的輸出結果是
welcome to add.com:the internet addition portal.如果要請求靜態資訊的話,可以將自己寫好的html頁面放入webserver/cgi-bin目錄下,在位址列輸入the answer is: 100 + 1000 = 1100
thanks for visiting!
結果就可以顯示出來了。
下次跟大家分享具體的原理和**。
自己動手寫http伺服器 執行緒池(一)
建立乙個執行緒池,每有乙個連線物件就將它新增到工作佇列中,執行緒池中的執行緒通過競爭來取得任務並執行它 它是通過訊號量實現的 filename threadpool.h ifndef threadpool h define threadpool h include include include i...
自己動手開發乙個 Web 伺服器(一)
自己動手開發 web 伺服器 會分為三個部分,將介紹如何從頭開發乙個簡易 web 伺服器。我們這就開始吧。首先,到底什麼是 web 伺服器?http請求 響應 簡而言之,它是在物理伺服器上搭建的乙個網路連線伺服器 networking server 永久地等待客戶端傳送請求。當伺服器收到請求之後,它...
自己動手寫框架 一
php框架接觸有一段時間,主要是kohana和thinkphp。這兩個框架各有各的特色,總體來說kohana還是相對來說比較簡單,但是國內資料較少。簡單的,我把我的這個框架命名為demo.框架搭建第一步,總體目錄規劃 classes controller models views template ...