参考资料:
cgi和fastcgi的区别
如何通俗地解释 CGI、FastCGI、php-fpm 之间的关系?

CGI是如何执行动态请求的

web服务器接受到请求,然后根据内容,fork一个新进程,这个进程会把处理完的数据返回给web服务器,最后web服务器把内容发送给用户,刚才fork的进程也随之退出,如果下次用户还请求该动态脚本,那么web服务器又再次fork一个新进程。这个方式的问题在于每次请求都要新开一个进程,用完之后又要关闭,这是CGI最为人诟病的fork-and-execute 模式,效率上比较低
image.png

FAST-CGI是如何处理请求的

他不会重新fork一个进程(因为这个进程在web服务器启动时就开启了,而且不会退出),web服务器直接把内容传递给这个进程,这个进程收到请求后进行处理,把结果返回给web服务器,最后自己接着等待下一个请求的到来,而不是退出。 这就是fastcgi。效率上比cgi高很多
image.png