C Web Server 从简单到复杂逐步实践与学习

jopen 8年前

本篇记录着自己从使用 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