簡單通用網關接口

簡單通用網關接口 (Simple Common Gateway Interface ,簡稱 SCGI) 是一種讓應用程式與 HTTP 伺服器互動的協定,作為 CGI 協定的替代。它類似於 FastCGI 但它被設計地更容易實現,且最重要的是,允許有很大延遲的 CGI 操作(如聯繫外部資料庫)。

基本介紹

  • 中文名:簡單通用網關接口
  • 領域:硬體
規範,請求格式,示例,超文本傳輸協定,

規範

客戶端通過一個可靠的流流協定連線到一個 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 伺服器關閉連線。

超文本傳輸協定

超文本傳輸協定英文HyperTextTransferProtocol,縮寫HTTP)是一種用於分散式、協作式和超媒體信息系統的套用層協定。HTTP是全球資訊網的數據通信的基礎。
設計HTTP最初的目的是為了提供一種發布和接收HTML頁面的方法。通過HTTP或者HTTPS協定請求的資源由統一資源標識符(Uniform Resource Identifiers,URI)來標識。
HTTP的發展是由蒂姆·伯納斯-李於1989年在歐洲核子研究組織(CERN)所發起。HTTP的標準制定由全球資訊網協會(World Wide Web Consortium,W3C)和網際網路工程任務組(Internet Engineering Task Force,IETF)進行協調,最終發布了一系列的RFC,其中最著名的是1999年6月公布的RFC 2616,定義了HTTP協定中現今廣泛使用的一個版本——HTTP 1.1。
2014年12月,網際網路工程任務組(IETF)的Hypertext Transfer Protocol Bis(httpbis)工作小組將HTTP/2標準提議遞交至IESG進行討論,於2015年2月17日被批准。HTTP/2標準於2015年5月以RFC 7540正式發表,取代HTTP 1.1成為HTTP的實現標準

相關詞條

熱門詞條

聯絡我們