基本介紹
- 中文名:簡單通用網關接口
- 領域:硬體
規範,請求格式,示例,超文本傳輸協定,
規範
客戶端通過一個可靠的流流協定連線到一個 SCGI 伺服器,進行 8 比特位元組的傳輸。客戶端首先傳送請求,當 SCGI 伺服器看到請求結束時,它會將回應傳送回來並關閉連線。
請求格式
請求包含幾個頭部和正文。頭部的格式是:
headers ::= header*header ::= name NUL value NULname ::= notnull+value ::= notnull*notnull ::= <01> | <02> | <03> | … | <ff>NUL = <00>
頭部中不允許出現重複的名稱。第一個頭部的名稱必須是 "CONTENT_LENGTH" 且值為正文的十進制長度。 "CONTENT_LENGTH" 頭必須始終存在,即使它的值為 "0" 。此外還必須有一個頭部的名稱為 "SCGI" 且值為 "1"。為了方便從 CGI 過渡,標準的 CGI環境變數也應該被作為 SCGI 頭部提供。
頭部會被編碼為netstring,然後傳送到伺服器應用程式。正文將在頭部後傳送,它的長度由 "CONTENT_LENGTH" 頭部指定。
示例
網頁伺服器(SCGI 客戶端)打開連線並傳送以下字元串拼接起來的數據:
"70:" "CONTENT_LENGTH" <00> "56" <00> "SCGI" <00> "1" <00> "REQUEST_METHOD" <00> "POST" <00> "REQUEST_URI" <00> "/deepthought" <00>",""What is the answer to life, the Universe and everything?"
網頁應用程式(SCGI 伺服器)傳送以下回應:
"Status: 200 OK" <0d 0a>"Content-Type: text/plain" <0d 0a>"" <0d 0a>"42"
然後 SCGI 伺服器關閉連線。