cgi和fastcgi存在的意义?
最早的Web服务器只处理静态的html文件
随着技术的不断发展,网站越来越复杂,然后出现到动态网站,但是服务并不能直接运行php,asp这个的动态语言文件,然后出现了cgi,cgi只是接口协议。
cgi执行动态请求
web服务器接受到请求,然后根据内容,fork一个新进程,这个进程会把处理完的数据返回给web服务器,最后web服务器把内容发送给用户,刚才fork的进程也随之退出,如果下次用户还请求改动态脚本,那么web服务器又再次fork一个新进程。这个方式的问题在与每次请求都要新开一个进程,用完之后又要关闭,这是CGI最为人诟病的fork-and-execute 模式,效率上比较低
![](https://img.haomeiwen.com/i7585574/3e128e51866e6bdc.png)
fastcgi执行动态请求
web服务器收到一个请求时,他不会重新fork一个进程(因为这个进程在web服务器启动时就开启了,而且不会退出),web服务器直接把内容传递给这个进程,这个进程收到请求后进行处理,把结果返回给web服务器,最后自己接着等待下一个请求的到来,而不是退出。 这就是fastcgi。效率上比cgi高很多
![](https://img.haomeiwen.com/i7585574/9fdc8750d757f6dc.png)
————————————————
原文链接:https://blog.csdn.net/zerozhuxiaozhu/java/article/details/78210610
网友评论