SCGI和CGI一樣,分為客戶端和伺服器端。客戶端放在http伺服器側。如apache有mod_scgi,lighthttpd有內置的SCGI支持。2008.12.29 最新版本 scgi 1.13, 伺服器實現是python,但放在http伺服器側的客戶端實現是C語言。
標準原版:http://python.ca/scgi/protocol.txt
協定中,ASCII字元可以用< >括起來的16進制數字表示,也可以引號""括起來的ASCII表示。
報文由報頭和報體組成。報頭格式:
headers ::= header*
header ::= name NUL value NUL
name ::= notnull+
value ::= notnull*
notnull ::= <01> | <02> | <03> | ... |
NUL = <00>
報頭中不允許重複命名。首個報頭必須名為"CONTENT_LENGTH",
且其值為非空的ASCII數字序列,以十進制數形式給出了報文主體的長度。
"CONTENT_LENGTH"報頭必須總是存在,即使其值為"0"。
同時必須始終有名為"SCGI"且值為"1"的報頭。
為了便於從CGI的遷移,標準CGI環境變數應該作為SCGI報頭提供。
報頭採用Netstring編碼。格式為“整個報文長度字元串:報頭,報體”
如下的示例:
web伺服器(一個SCGI客戶端)打開一個連線,傳送下面字元串的拼接:
"70:"
"CONTENT_LENGTH" <00> "27" <00>
"SCGI" <00> "1" <00>
"REQUEST_METHOD" <00> "POST" <00>
"REQUEST_URI" <00> "/deepthought" <00>
","
"What is the answer to life?"
這是一個Netstring編碼的報頭+報體。開頭的70表示報文長度70個8位。<00>表示0結尾的字元串。用“,”隔開報頭和報體。
SCGI伺服器傳送下面的回響:
"Status: 200 OK" <0d 0A>
"Content-Type: text/plain" <0d 0a>
"" <0d 0a>
"42"
<0d 0a>表示換行。
SCGI伺服器關閉連線。
相關詞條
-
scgi
SCGI(Simple Common Gateway Interface),簡單通用網關接口。是CGI的替代協定,與FastCGI相似,但更簡單。據測試...
-
Quixote
Apache中。使 用scgi,這是作者推薦的。使用Apache SCGI module scgi_mod將遵循SCGI協定Apache將請求傳送到相應...結果。SCGI的配置Quixote的網站上對SCGI的描述:SCGI...
SCGI的配置 第一個Quixote程式 Quixote 中文化的要點 -
web.py
) 使web.py 支持with CGI, FastCGI 或 SCGI...
安裝 URL 處理 調試 開發 -
Tengine
、fastcgi、scgi、uwsgi在後端失敗時的重試次數• 動態腳本語言Lua...
發展 功能 編譯 特性詳解 版本發布 -
Ruby精粹專家編程
早些時候,Zed曾寫過一個scgi方式的Rails運行環境(Runner...
內容簡介 作者簡介 目錄 書摘插圖 參考資料 -
洪強寧
,nginx做負載的平衡,lighttpd通過SCGi...
洪強寧-關於豆瓣 洪強寧-研討會紀實 -
cherokee
。 Cherokee 的功能包括支持 FastCGI、scgi...
-
Uliweb
的dotCloud的等。支持mod_wsgi的,CGI,fast_cgi,SCGI...
簡介 特點以及功能 -
kangle
基本定義除此:kangle也是一款專為做虛擬主機研發的web伺服器。實現虛擬主機獨立進程、獨立身份運行。用戶之間安全隔離,一個用...
基本定義 開發背景 運行環境 主要特點 套用靈活