CGI -- 通用網關接口

定義:
  The CGI defines the abstract parameters, known as meta-variables,which describe a client's request. Together with a concrete programmer interface this specifies a platform-independent interface between the script and the HTTP server.
通用網關接口定義了服務器與腳本之間進行交互的參數和接口。

how does it work?
  寫段程序叫作CgiImplementor實現接口。
如今打開mysite.net/index.php 因而發生下面過程:
  瀏覽器 ---發送請求--> 服務器 --接受請求並調用CgiImplementor程序實現的接口--> CgiImplementor --調用php解釋器執行php腳本並生成內容--> 服務器 --CgiImplementor返回的內容->瀏覽器

實例:

Nginx+FastCGI運行原理

Nginx不支持對外部程序的直接調用或者解析,全部的外部程序(包括PHP)必須經過FastCGI接口來調用。FastCGI接口在Linux下是socket(這個socket能夠是文件socket,也能夠是ip socket)。爲了調用CGI程序,還須要一個FastCGI的wrapper(wrapper能夠理解爲用於啓動另外一個程序的程序),這個wrapper綁定在某個固定socket上,如端口或者文件socket。當Nginx將CGI請求發送給這個socket的時候,經過FastCGI接口,wrapper接收到請求,而後派生出一個新的線程,這個線程調用解釋器或者外部程序處理腳本並讀取返回數據;接着,wrapper再將返回的數據經過FastCGI接口,沿着固定的socket傳遞給Nginx;最後,Nginx將返回的數據發送給客戶端。這就是Nginx+FastCGI的整個運做過程,如圖1-3所示。

 

相關文章
相關標籤/搜索