The SCGI protocol leverages the fact that the web server has already parsed and validated the HTTP request, and canonically communicates the request to the SCGI server while letting the application programmer avoid parsing ambiguities and protocol edge cases.
This avoids the complicated header-parsing and header-combining rules from RFC 2616, saving significant complexity in the SCGI server process.
[2] The client connects to a SCGI server over a reliable stream protocol allowing transmission of 8-bit bytes.
When the SCGI server sees the end of the request it sends back a response and closes the connection.
(this list is not complete) SCGI can be implemented in any language that supports network sockets and netstrings.
The following is a partial list of languages with known SCGI bindings: Application/Gateway protocols: Application hosts (language-specific):