來源:涼官灰 發(fā)布時間:2020-05-25 10:00:35 閱讀量:1701
1、什么是 CGI?
是公共網(wǎng)關(guān)接口協(xié)議,一個協(xié)議。CGI 就是規(guī)定要傳哪些數(shù)據(jù),以什么樣的格式傳遞給后方處理這個請求的協(xié)議。
2、什么是 FastCGI?
FastCGI 像是一個常駐 (long-live) 型的 CGI。和 CGI 一樣的東西,做了下優(yōu)化,也是一個協(xié)議
3、什么是 php-CGI?
PHP-CGI 是 PHP 自帶的 FastCGI 進程管理器。
4、什么是 php-fpm?
第三方 FastCG I 的進程管理器,解決 PHP-CGI 的一些問題,并管理 PHP-CGI。
5、php-fpm 與 fastcgi 什么關(guān)系?
php-fpm 是針對 php 的,實現(xiàn)了 FastCGI 協(xié)議的,并提供了對 php-CGI 管理的一個進程管理器。
6、php-fpm 解決了什么問題?
php-CGI 的平滑重啟。
php-CGI 的常駐管理。(這里的常駐是指在 php-CGI 進程被殺死后 php 就掛了,php-fpm 會在 php 進程被殺死后重新啟動 php-CGI)
動靜分離實現(xiàn)?
7、php-fpm 獨立運行在非 web 服務(wù)器上,實現(xiàn)所謂的動靜分離。
8、php 上的 php-cgi 和 php-fpm 都是 php 對 FastCGI 協(xié)議的實現(xiàn)。后者還提供了 php-CGI 進程的管理。
9、由于 FastCGI 是多進程,所以比 CGI 多線程消耗更多的服務(wù)器內(nèi)存。就是說在你內(nèi)存不大,并發(fā)請求不高的情況下,CGI 比 FastCGI 更適合你。
10、Web Server 一般指 Apache、Nginx、IIS、Lighttpd、Tomcat 等服務(wù)器。
11、Web Application 一般指 PHP、Java、Asp.net 等應(yīng)用程序。
12、什么是 SAPI ?SAPI(Server Application Programming Interface)是應(yīng)用程序接口。PHP 中最重要的 SAPI 是 PHP-FPM。 PHP-FPM 是對 FastCGI 的實現(xiàn)。
13、SAPI 通俗的講就是 php-CGI,php-cli,mod_php 等,php 就是 php 內(nèi)核。SAPI 的核心就是一個結(jié)構(gòu)體 sapi_module_struct。php-CGI,php-cli,mod_php 都實現(xiàn)了該結(jié)構(gòu)體。
14、php 默認(rèn)提供了很多種 SAPI,常見的提供給 apache 和 nginx 的 php5_module、CGI、FastCGI,給 IIS 的 ISAPI,以及 Shell 的 CLI。
15、協(xié)議:規(guī)則的集合。接口:代碼中協(xié)議的約束。