Tinyhttpd项目解析
TinyHTTPd是一个开源的轻量级HTTP服务器,整个代码500多行,10多个函数,对于学习HTTP服务器的原理来说非常有帮助,把代码读一遍,再按照执行处理流程调试一下,基本上可以搞清楚Web服务器在收到静态页面请求和CGI请求的一些基本处理逻辑。
Tinyhttp运作流程图:
Socket编程->linux下用C语言开发多线程程序
以上是基于TCP连接的C/S模型,由于本项目是http服务器,即B/S模型,因此不需要客户端程序,服务器端负责接收浏览器的http请求并处理,有可能返回静态页面,也有可能返回cgi脚本运行结果。
管道通信
(1)子进程负责运行cgi脚本;
(2)父进程负责从浏览器接收数据,并通过管道发送给cgi脚本处理;通过管道得到cgi脚本结果,