C Web Server 從簡單到復雜逐步實踐與學習

jopen 8年前發布 | 12K 次閱讀 Web服務器 C/C++開發

本篇記錄著自己從使用 Web 服務器的感知到逐步認識和實現 Web 的過程。

Web 服務器基礎工作原理了解實踐篇

http://mengkang.net/491.html

本篇因為是在PHP基礎之上實現的,功能簡單,重點在于體現Web服務器和客戶端的請求與響應的一個大致的過程。

靜態版示意圖

動態版本加上了 Web 容器對客戶端請求的 URI 通過 CGI 做解析,然后服務器在本地執行相應的程序獲得結果,然后返回給客戶端

靜態 C Web Server 實踐篇(循環服務器)

實驗一: http://mengkang.net/563.html 通過該版本的學習熟悉了 socket 系列api。

實驗二: http://mengkang.net/568.html 之后又在原來的基礎之上融入了 select I/0多路轉接的特性,對原有的靜態服務器進行了“改進”,但是更卡了,因為多了一步select的判斷。發現這個野路子純屬瞎折騰,并沒有什么用。但是在這個實驗中發現了,只有當客戶端連接過來之后 listenfd 才有數據可讀,才能進入都到select 的 fd_set 中去,而其中的具體過程留著后面深入學習。

靜態 C Web Server 實踐篇

實驗一: http://mengkang.net/571.html 不限制子進程個數的多進程并發模型

實驗二: http://mengkang.net/576.html 預先分配子進程個數的多進程并發模型

實驗三:預先分配子線程的多線程并發模型

靜態 C Poll Web Server 的實踐篇

未完成

靜態 C Epoll Web Server 的實踐篇

未完成

動態 C Epoll Web Server 的實踐篇

未完成

來自: http://mengkang.net/567.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!