cgi和fastcgi的区别

最早的Web服务器只处理静态的html文件

随着技术的不断发展,网站越来越复杂,然后出现到动态网站,但是服务并不能直接运行php,asp这个的动态语言文件
然后出现了cgi,cgi只是接口协议,
cgi是怎么执行动态请求的
web服务器接受到请求,然后根据内容,fork一个新进程,这个进程会把处理完的数据返回给web服务器,最后web服务器把内容发送给用户,刚才fork的进程也随之退出,如果下次用户还请求改动态脚本,那么web服务器又再次fork一个新进程。这个方式的问题在与每次请求都要新开一个进程,用完之后又要关闭,这是CGI最为人诟病的fork-and-execute 模式,效率上比较低
后来出现了一种更高级的方式,web服务器收到一个请求时,他不会重新fork一个进程(因为这个进程在web服务器启动时就开启了,而且不会退出),web服务器直接把内容传递给这个进程,这个进程收到请求后进行处理,把结果返回给web服务器,最后自己接着等待下一个请求的到来,而不是退出。 这就是fastcgi。效率上比cgi高很多
我在网上找了两张解释比较好的图
cgicgi和fastcgi的区别
fastcgi
cgi和fastcgi的区别