cgi、fastCGI、php-fpm、 php-CGI的区别

aaLiweipeng 2020-04-25

cgi、fastCGI、php-fpm、 php-CGI的区别

作为面试的高频热点问题,必须来一波记录:

我们发送一个请求到收到响应之间的一个过程是什么?

  如果客户端请求的是 index.html,那么服务器r去文件系统中找到这个文件,发送给浏览器,这里分发的是静态数据。

cgi、fastCGI、php-fpm、 php-CGI的区别

如果我们请求的是index.php,那么服务器收到请求后分析出这是一个动态文件,然后区启动对应的CGI程序这里就是PHP的解析器,解析器首先解析我们的php.ini文件,初始化执行环境,然后解析index.php页面,解析完毕后,以cgi规定的格式返回给服务器,然后退出程序,服务器将结果返回给客户端。

cgi、fastCGI、php-fpm、 php-CGI的区别

 这就是一个完整的动态PHP Web访问流程。接下来理解概念:

  • CGI:是 服务器 与 应用程序 之间数据交换的一种协议。
  • FastCGI:同 CGI,是一种通信协议,但比 CGI 在效率上做了一些优化。同样,SCGI 协议与 FastCGI 类似。
  • PHP-CGI:是 PHP (Web Application)对 Web Server 提供的 CGI 协议的接口程序。
  • PHP-FPM:是 PHP(Web Application)对 Web Server 提供的 FastCGI 协议的接口程序,额外还提供了相对智能一些任务管理。

相关推荐