http小服务器
2021-08-04 03:46:09 6 举报
案件
作者其他创作
大纲/内容
accept_request:接收请求/分析headler(在这个函数里面只读了headler的第一行)
父进程
对于有参的get方法和post方法
将post的参数写入管道
读取结果返回给浏览器
创建两个管道用于父进程通信
stdout,写入管道
stdin,执行外部脚本
cgi-output
执行execute_cgi函数
pthread_creat:对于一个请求创建线程对他进行处理
子进程
cgi-input
对于无参的get请求
返回静态文件
accept函数:等待connect
线程
web server通过cgi/fastcgi协议将动态请求转发给执行cgi脚本的应用程序。cgi模式:httpd接收到一个动态请求就fork一个cgi进程,cgi进程返回结果给httpd进程后自我销毁。动态模块模式:将php-cgi的模块(例如php5_module)编译进httpd。在httpd启动时会加载模块,加载时也将对应的模块激活,php-cgi也就启动了。(注:纠正一个小小错误,很多人以为动态编译的模块是可以在需要的时候随时加载调用,不需要的时候它们就停止了,实际上不是这样的。和静态编译的模块一样,动态加载的模块在被加载时就被加入到激活链表中,无论是否使用它,它都已经运行在apache httpd的内部。可参考LoadModule指令的官方手册)php-fpm模式:使用php-fpm管理php-cgi,此时httpd不再控制php-cgi进程的启动。可以将php-fpm独立运行在非web服务器上,实现所谓的动静分离。
while
调用execute_cgi函数
0 条评论
下一页