青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數據加載中……

FastCGI協議報文的分析

http://xiaoxia.org/?p=1891

不知道什么時候,就開始有了讓HomeServer支持PHP的念頭。于是分析起了FastCGI協議。FastCGI用于WebServerWebApplication之間的通訊,例如ApachePHP程序。

FastCGI協議數據包是8字節對齊的,由包頭(Header)和包體(Body)組成。例如要請求一個index.php的頁面,WebServer首先向WebApp發送一個Request數據包。包頭有個請求ID用于并行工作時,區別不同的請求。

包頭

[
版本:1][類型:1][請求ID:2][數據長度:2][填充字節數:1][保留:1]

包體

[
角色:2][參數:1][保留:5]

接著,再發送一個Params數據包,用于傳遞執行頁面所需要的參數和環境變量。

包頭

[
版本:1][類型:1][請求ID:2][數據長度:2][填充字節數:1][保留:1]

包體

[
名稱長度:14][值長度:14][名稱:變長][:變長] ...

其中,名稱和值的長度占用的字節數是可變,取決于第一個字節(高位)的最高位是否為1,為1則長度是4個字節,否則為1個字節。即如果長度不超過128字節,就用一個字節來保存長度足夠了。

參數發送后還要發送一個沒有包體,只有包頭的空的Params數據包,用來表示參數發送結束。

如果請求頁面時POST方式,還會發送表單數據。這就要用到Stdin數據包了。

包頭

[
版本:1][類型:1][請求ID:2][數據長度:2][填充字節數:1][保留:1]

包體

[
數據內容:長度在包頭中設置,8字節對齊]

有時候POST的數據大于或等于64KB,就不能使用一個Stdin數據包發送完畢了,需要使用多次Stdin數據包來完成所有數據的傳輸。與Params數據包一樣,結尾要發送一個沒有包體,只有包頭的空的Stdin數據包,用來表示參數發送結束。

至此,WebServer要提供給WebApplication的數據已經發送完畢。接著就接收來自WebApplication的數據了。

數據接收包StdoutStdin是差不多的,這里不再描述。不過接收到的數據由HTTP頭和網頁數據兩部分組成,WebServer要對其做一定的處理后才能發送到瀏覽器。同Stdin數據包一樣,WebServer會接收到一個來自WebApplicationStdout的空數據包,表示接收的Stdout數據已經完畢。

最后,WebApplication會發送一個包含狀態的EndRequest數據包,至此,一次頁面請求處理完畢。

下面給出一些相關結構參考。

通用包頭:

typedef struct {
    unsigned char version;
    unsigned char type;
    unsigned char requestIdB1;
    unsigned char requestIdB0;
    unsigned char contentLengthB1;
    unsigned char contentLengthB0;
    unsigned char paddingLength;
    unsigned char reserved;
}FCGI_Header;
 
typedef struct {
    unsigned char roleB1;
    unsigned char roleB0;
    unsigned char flags;
    unsigned char reserved[5];
} FCGI_BeginRequestBody;
 
typedef struct {
    FCGI_Header header;
    FCGI_BeginRequestBody body;
} FCGI_BeginRequestRecord;
 
typedef struct {
    unsigned char appStatusB3;
    unsigned char appStatusB2;
    unsigned char appStatusB1;
    unsigned char appStatusB0;
    unsigned char protocolStatus;
    unsigned char reserved[3];
} FCGI_EndRequestBody;

每次請求頁面時,傳遞給PHP程序的參數:

SCRIPT_FILENAME,

QUERY_STRING,

REQUEST_METHOD,

CONTENT_TYPE,

CONTENT_LENGTH,

SCRIPT_NAME,

REQUEST_URI,

DOCUMENT_URI,

DOCUMENT_ROOT,

SERVER_PROTOCOL,

GATEWAY_INTERFACE,

SERVER_SOFTWARE,

REMOTE_ADDR,

REMOTE_PORT,

SERVER_ADDR,

SERVER_PORT,

SERVER_NAME,

REDIRECT_STATUS,

HTTP_ACCEPT,

HTTP_ACCEPT_LANGUAGE,

HTTP_ACCEPT_ENCODING,

HTTP_USER_AGENT,

HTTP_HOST,

HTTP_CONNECTION,

HTTP_CONTENT_TYPE,

HTTP_CONTENT_LENGTH,

HTTP_CACHE_CONTROL,

HTTP_COOKIE,

HTTP_FCGI_PARAMS_MAX

好像很多,但是很多空值的,可以省去,不發送之,即可。

參考文獻:

FastCGI Specification

感謝狙擊手同志提供相關幫助。

 

posted on 2011-06-21 11:30 肥仔 閱讀(1469) 評論(0)  編輯 收藏 引用 所屬分類: Web-后臺

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲一区激情| 欧美高清视频在线播放| 久久久国产精品亚洲一区 | 欧美金8天国| 欧美黄色aaaa| 欧美日韩在线另类| 国产精品丝袜白浆摸在线| 国产精品一区二区三区免费观看 | 在线免费高清一区二区三区| 国产一区二区丝袜高跟鞋图片| 国产亚洲精品自拍| 玉米视频成人免费看| 日韩视频免费在线观看| 亚洲综合首页| 另类春色校园亚洲| 99riav久久精品riav| 午夜性色一区二区三区免费视频| 久久久高清一区二区三区| 欧美精品色网| 国产综合久久| 亚洲午夜极品| 欧美77777| 在线综合亚洲欧美在线视频| 嫩草成人www欧美| 亚洲精品黄色| 亚洲在线一区二区三区| 免费av成人在线| 国产欧美欧美| 正在播放欧美视频| 欧美阿v一级看视频| 亚洲午夜日本在线观看| 欧美18av| 永久免费毛片在线播放不卡| 亚洲视频免费看| 欧美激情一区三区| 久久经典综合| 国产欧美日韩视频在线观看| 99re6热在线精品视频播放速度 | 欧美与黑人午夜性猛交久久久| 欧美激情第五页| 欧美在现视频| 国产欧美欧洲在线观看| 亚洲一区视频在线| 亚洲精品在线视频观看| 欧美a级一区二区| 亚洲第一视频网站| 久久综合亚洲社区| 久久se精品一区二区| 国产精品一级二级三级| 亚洲一区二区三区午夜| 亚洲美女精品一区| 欧美高清在线精品一区| 亚洲欧洲日产国产网站| 欧美激情一区| 欧美激情视频在线播放| 亚洲欧洲日本在线| 91久久午夜| 欧美日韩亚洲一区| 亚洲一区二区视频在线| 一本色道久久综合狠狠躁篇怎么玩| 欧美精品 日韩| 中文国产成人精品久久一| 亚洲精品综合久久中文字幕| 欧美激情亚洲视频| 亚洲一区二区三区精品视频| 夜夜夜精品看看| 欧美日韩在线播放一区二区| 亚洲小视频在线观看| 亚洲网友自拍| 黄色精品网站| 亚洲国产精品一区二区三区| 欧美精品七区| 午夜精品久久久久久久久久久久久| 亚洲在线播放| 在线观看91精品国产入口| 欧美黑人多人双交| 欧美日韩另类丝袜其他| 欧美一区1区三区3区公司| 久久久久成人精品| 亚洲欧洲精品一区二区精品久久久| 亚洲激情中文1区| 亚洲一区二区三区中文字幕| 亚洲视频在线免费观看| 欧美性天天影院| 欧美一级在线视频| 久久久久久尹人网香蕉| 亚洲理伦电影| 性伦欧美刺激片在线观看| 亚洲国产成人av| 一区二区电影免费观看| 红桃视频亚洲| 一区二区久久| 亚洲国产一区二区三区在线播| 99国产精品私拍| 激情文学综合丁香| 一区二区三区久久| 亚洲高清在线精品| 亚洲欧美成人网| 亚洲国产精品成人一区二区| 99精品福利视频| 伊人成综合网伊人222| 99视频精品全部免费在线| 国产日韩欧美在线一区| 欧美激情一区二区在线| 国产欧美一区二区三区在线看蜜臀 | 欧美高清在线一区| 国产精品普通话对白| 亚洲第一成人在线| 国产一区91| 亚洲性视频网址| 一区二区国产日产| 欧美+日本+国产+在线a∨观看| 久久国产主播精品| 国产精品国产精品国产专区不蜜| 欧美成人xxx| 国产在线一区二区三区四区| 夜夜爽av福利精品导航| 9i看片成人免费高清| 老色鬼精品视频在线观看播放| 久久爱另类一区二区小说| 欧美午夜影院| 亚洲最新在线视频| 亚洲视频中文字幕| 欧美人妖另类| 亚洲免费高清视频| 99国产精品99久久久久久粉嫩| 久久久精品国产一区二区三区| 香蕉久久夜色精品国产| 国产精品扒开腿做爽爽爽视频| 亚洲国产小视频| 亚洲精品久久久久久下一站| 久久在线免费观看视频| 免费成人av在线| 樱桃国产成人精品视频| 久久男人资源视频| 模特精品在线| 亚洲黄色影院| 欧美精品免费在线观看| 日韩视频一区二区在线观看| 日韩一区二区精品在线观看| 欧美国产激情二区三区| 亚洲黄一区二区三区| 宅男精品视频| 亚洲一区二区三区色| 欧美人与禽猛交乱配| 亚洲精选大片| 亚洲一区综合| 国产情人综合久久777777| 亚洲欧美日韩国产一区二区| 欧美影院成人| 一区二区三区在线免费观看| 欧美伊人影院| 亚洲第一免费播放区| 99日韩精品| 国产精品一二一区| 久久一区二区三区国产精品 | 欧美国产精品一区| 一本色道久久综合亚洲精品不卡| 亚洲欧美激情在线视频| 国模叶桐国产精品一区| 米奇777在线欧美播放| 亚洲精品中文在线| 欧美在线一二三| 亚洲国产精品视频一区| 欧美日韩亚洲一区二区三区在线观看| 亚洲一区二区三区四区五区午夜 | 亚洲欧美日韩成人高清在线一区| 国产日韩欧美另类| 欧美成人69av| 亚洲欧美不卡| 亚洲国产清纯| 久久精品一级爱片| 99re6热只有精品免费观看| 国产欧美日韩激情| 欧美国产成人精品| 欧美一区二区在线免费观看| 亚洲大胆在线| 久久国产视频网| 一本色道精品久久一区二区三区 | 亚洲五月六月| 亚洲国产成人在线播放| 欧美午夜宅男影院在线观看| 久久精品综合| 亚洲一品av免费观看| 亚洲高清久久| 狂野欧美一区| 久久国产欧美精品| 亚洲在线不卡| 亚洲最新在线视频| 91久久午夜| 亚洲春色另类小说| 国产亚洲欧美另类中文| 欧美日韩综合在线免费观看| 蜜臀va亚洲va欧美va天堂| 欧美在线免费一级片| 亚洲淫性视频| 亚洲私人影院在线观看| 日韩一区二区精品| 亚洲茄子视频| 亚洲欧洲在线一区|