[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/url-scgi 62a6cf9305 07/48: Update documentation and add
From: |
ELPA Syncer |
Subject: |
[elpa] externals/url-scgi 62a6cf9305 07/48: Update documentation and add new doc/ directory |
Date: |
Fri, 28 Oct 2022 22:58:29 -0400 (EDT) |
branch: externals/url-scgi
commit 62a6cf93053cfcfd05357fe86316fc02636e4d2e
Author: Stefan Kangas <skangas@skangas.se>
Commit: Stefan Kangas <skangas@skangas.se>
Update documentation and add new doc/ directory
---
doc/scgi-protocol.txt | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 101 insertions(+)
diff --git a/doc/scgi-protocol.txt b/doc/scgi-protocol.txt
new file mode 100644
index 0000000000..34c128005f
--- /dev/null
+++ b/doc/scgi-protocol.txt
@@ -0,0 +1,101 @@
+SCGI: A Simple Common Gateway Interface alternative
+Neil Schemenauer <nas@python.ca>
+2008-06-23
+
+1. Introduction
+
+ The SCGI protocol is a replacement for the Common Gateway Interface
+ (CGI) protocol. It is a standard for applications to interface with
+ HTTP servers. It is similar to FastCGI but is designed to be easier
+ to implement.
+
+ In this document, a string of 8-bit bytes may be written in two
+ different forms: as a series of hexadecimal numbers between angle
+ brackets, or as a sequence of ASCII characters between double quotes.
+ For example, <68 65 6c 6c 6f 20 77 6f 72 6c 64 21> is a string of
+ length 12; it is the same as the string "hello world!". Note that
+ these notations are part of this document, not part of the protocol.
+
+
+2. Protocol
+
+ The client connects to a SCGI server over a reliable stream protocol
+ allowing transmission of 8-bit bytes. The client begins by sending a
+ request. See section 3 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.
+
+
+3. 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 a nonempty
+ sequence of ASCII digits giving the of the body length 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 encoded as a netstring. Netstring encoding is
+ explained in section 4. The body is sent following the headers and
+ its length is specified by the "CONTENT_LENGTH" header.
+
+
+4. Netstrings
+
+ Any string of 8-bit bytes may be encoded as [len]":"[string]",". Here
+ [string] is the string and [len] is a nonempty sequence of ASCII
+ digits giving the length of [string] in decimal. The ASCII digits are
+ <30> for 0, <31> for 1, and so on up through <39> for 9. Extra zeros
+ at the front of [len] are prohibited: [len] begins with <30> exactly
+ when [string] is empty.
+
+ For example, the string "hello world!" is encoded as <31 32 3a 68 65
+ 6c 6c 6f 20 77 6f 72 6c 64 21 2c>, i.e., "12:hello world!,". The empty
+ string is encoded as "0:,".
+
+ [len]":"[string]"," is called a netstring. [string] is called the
+ interpretation of the netstring.
+
+
+5. Example
+
+ The web server (a 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 SCGI server sends the following response:
+
+ "Status: 200 OK" <0d 0a>
+ "Content-Type: text/plain" <0d 0a>
+ "" <0d 0a>
+ "42"
+
+ The SCGI server closes the connection.
+
+
+6. Copyright
+
+ This document has been placed in the public domain.
+
+
+/* vim: set ai tw=74 et sw=4 sts=4: */
- [elpa] branch externals/url-scgi created (now ce5e1d5fd1), ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi 2d43fa147c 02/48: Add url-scgi.el: SCGI Uniform Resource Locator retrieval code, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi 103dd508e1 03/48: url-scgi.el: Support Emacs 24, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi 62a6cf9305 07/48: Update documentation and add new doc/ directory,
ELPA Syncer <=
- [elpa] externals/url-scgi 248962b6d6 08/48: url-scgi: Fix scgi socket on absolute path, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi 8f5564a783 10/48: url-scgi: untabify, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi 60154c472f 01/48: Add COPYING file containing the GPLv3., ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi 3686dad2bd 04/48: Cleanups in url-scgi.el, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi f868b8be51 05/48: Support using xmlrpc over a file bound socket, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi 1f76fba6a2 06/48: Use lexical binding, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi efd8de5ec8 09/48: url-scgi: fix compile time warning, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi 44ee68353b 12/48: url-scgi: Add first unit tests, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi 37f3ce8fa6 22/48: Fix some comments and docstrings, ELPA Syncer, 2022/10/28
- [elpa] externals/url-scgi 66a7d265ff 13/48: Fix the workaround for bug in xml-rpc.el, ELPA Syncer, 2022/10/28