简单了解了一下Lighttpd,回头看了它的源码补上相应的笔记。
Lighttpd采用多进程网络服务模型。
进程分两种:监控进程watcher 和 工作进程 workers。
监控进程:fork工作进程并监视工作进程的数目,一旦有工作进程退出,监控进程立即fork新的工作进程。
工作进程:接收客户端请求并做出服务响应。
一般情况下,存在一个监控进程和多个工作进程。
max-worker值默认为0时,没有监控进程,只有一个工作进程。
关于初始化:Lighttpd很多地方内存申请都是采用calloc,malloc()和calloc()的主要区别是前者不能初始化所分配的内存空间,而后者能。
还有最近在看tinyhttpd http服务器和webench网络测压工具的源码。