Simple Common Gateway Interface
This article may require cleanup to meet Wikipedia's quality standards. Please improve this article if you can. (August 2008) |
The Simple Common Gateway Interface (SCGI) is a protocol for applications to interface with HTTP servers, an alternative to the CGI protocol. It is similar to FastCGI but is designed to be easier to implement.
The specification document was placed in the public domain by Neil Schemenauer <nas@python.ca> on 12 January 2006.
Specification
The client connects to an SCGI server over a reliable stream protocol allowing transmission of 8-bit bytes. The client begins by sending a request. See below for the format of the request. When the SCGI server sees the end of the request it sends back a response and closes the connection. The format of the response is not specified by this protocol.
Request format
A request consists of a number of headers and a body. The format of the headers is:
headers ::= header* header ::= name NUL value NUL name ::= notnull+ value ::= notnull* notnull ::= <01> | <02> | <03> | ... | <ff> NUL = <00>
Duplicate names are not allowed in the headers. The first header must have the name "CONTENT_LENGTH" and a value that is the length of the body in decimal. The "CONTENT_LENGTH" header must always be present, even if its value is "0". There must also always be a header with the name "SCGI" and a value of "1". In order to facilitate the transition from CGI, standard CGI environment variables should be provided as SCGI headers.
The headers are sent to the server application encoded as a netstring. The body is sent following the headers and its length is specified by the "CONTENT_LENGTH" header.
Example
The web server (an SCGI client) opens a connection and sends the concatenation of the following strings:
"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?"
The web application (SCGI server) sends the following response:
"Status: 200 OK" <0d 0a> "Content-Type: text/plain" <0d 0a> "" <0d 0a> "42"
The SCGI server then closes the connection.
Web servers that implement SCGI
File:Wiki letter w.svg | This section requires expansion. |
- Apache HTTP Server
- Lighttpd
- Cherokee
- Mathopd - with unofficial patch
- nginx
- Microsoft Internet Information Services with ISAPI SCGI extension
Language bindings for the SCGI API
File:Wiki letter w.svg | This section requires expansion. |
External links
- SCGI specification
- netstrings specification
- Apache SCGI modules and Python SCGI interface
- Cherokee SCGI module
- Cherokee's Python SCGI module
- Perl SCGI interface
- Java SCGI connector
- Haskell SCGI package
- PHP SCGI Libraries
- Nginx SCGI Module
- Tcl SCGI module
- IIS SCGI extension
|
de:Simple Common Gateway Interface es:SCGI fr:Simple Common Gateway Interface ru:SCGI
If you like SEOmastering Site, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...