跟很多協議類似,cgi協議也由header和body組成,其中header為固定格式。
字段長度
說明version
1 bytes
取值一般為1
type
1 bytes
requestid
2 bytes
big endians
contentlen
2 bytes
big endians
paddinglen
1 bytes
reserved
1 bytes
預留字段
其中type的可能取值如下:值名稱
說明1fcgi_begin_request
開始請求
2fcgi_abort_request
異常終止請求
3fcgi_end_request
正常終止請求
4fcgi_params
傳遞引數
5fcgi_stdin
post內容傳遞
6fcgi_stdout
正常響應內容
7fcgi_stderr
錯誤輸出
8fcgi_data
9fcgi_get_values
10fcgi_get_values_result
11fcgi_unknown_type
通知webserver所請求type非正常型別
字段長度
說明role
2 bytes
big endians
flags
1 byte
>0表示長連線,否則短連線
reserved
5 bytes
預留字段
包pack偽碼如下:
這個協議用來通知php-fpm一些常量,例如:
協議格式如下:
字段長度
說明name_len
1 bytes or 4 bytes
長度小於128用乙個位元組,大於128用4個位元組
value_len
同上同上
name
n bytes
script_filename/request_method etc
value
n bytes
/path/to/php etc
包pack偽碼如下:
這個協議沒有包體,只要將header中type置為fcgi_end_request即可
thank you
高階 PHP FPM和Nginx的通訊機制
php fpm 介紹 cgi 協議與 fastcgi 協議 每種動態語言 php,python 等 的 檔案需要通過對應的解析器才能被伺服器識別,而 cgi 協議就是用來使直譯器與伺服器可以互相通訊。php 檔案在伺服器上的解析需要用到 php 直譯器,再加上對應的 cgi 協議,從而使伺服器可以解...
高階 PHP FPM和Nginx的通訊機制
php fpm 介紹 cgi 協議與 fastcgi 協議 每種動態語言 php,python 等 的 檔案需要通過對應的解析器才能被伺服器識別,而 cgi 協議就是用來使直譯器與伺服器可以互相通訊。php 檔案在伺服器上的解析需要用到 php 直譯器,再加上對應的 cgi 協議,從而使伺服器可以解...
自己動手打造Apache和Mysql綠色免安裝版
自己動手打造apache和mysql綠色免安裝版 我自己用了很久了,雖然很簡單,但相信許多人還不知道,就寫出來和大家共享 重裝完系統後 1.執行cmd進入命令列 2.進入apache所在的目錄下的bin目錄,如 d apache bin 執行 只要這一步apache服務就安裝好了 3.進入mysql...