自己動手寫的Web伺服器《一》

2021-06-05 10:47:53 字數 943 閱讀 6584

背景介紹

書到用時方恨少,工作之後才知道自己的知識有多麼的困乏,學識有多麼的淺薄。好在我的程式設計師工作不那麼苦逼,每天有大把的時間讓我學我學習,經《程式設計師》的推薦,花大價錢買了一本《深入理解計算機系統》,對於這本書,我的評價是——計算機知識的高品質富礦。於是我拿著這本書開始修煉內功,只恨學校沒有使用這本書當教材,只恨自己沒有早發現這本書。

言歸正傳,這個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.

the answer is: 100 + 1000 = 1100

thanks for visiting!

如果要請求靜態資訊的話,可以將自己寫好的html頁面放入webserver/cgi-bin目錄下,在位址列輸入

結果就可以顯示出來了。

下次跟大家分享具體的原理和**。

自己動手寫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 ...