alpha = lowalpha | hialpha
lowalpha = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h"
| "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p"
| "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x"
| "y" | "z"
hialpha = "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H"
| "I" | "J" | "K" | "L" | "M" | "N" | "O" | "P"
| "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X"
| "Y" | "Z"
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7"
| "8" | "9"
OCTET = <any 8-bit byte>
CHAR = <any character>
CTL = <any control character>
SP = <space character>
NL =
LWSP = SP | NL | <horizontal-tab>
INTERNET-DRAFT Common Gateway Interface - 1.1 15 February 1996
tspecial = "(" | ")" | "@" | "," | ";" | ":" | "\" | <">
| "/" | "[" | "]" | "?" | SP
token = 1*<any CHAR except CTLs or tspecials>
quoted-string = ( <"> *qdtext <"> ) | ( "<" *qatext ">")
qdtext = <any CHAR except <"> and CTLs but including LWSP>
qatext = <any CHAR except "<", ">" and CTLs but
including LWSP>
Note that newline (NL) need not be a single character, but can be a
character sequence.
3. URL Encoding
Some variables and constructs used here are described as being
`URL-encoded'. This encoding is described in section 2.2 of RFC 1738
[4]. In a URL encoded string an escape sequence consists of a percent
character ("%") followed by two hexadecimal digits, where the two
hexadecimal digits form an octet. An escape sequence represents the
graphic character which has the octet as its code within the US-ASCII
[11] coded character set, if it exists. If no such graphic character
exists, then the escape sequence represents the octet value itself.
Note that some unsafe characters may have different semantics if they
are encoded. The definition of which characters are unsafe depends on
the context.
4. The Script URI
A `Script URI' can be defined; this describes the resource identified
by the environment variables. Often, this URI will be the same as the
URI requested by the client (the `Client URI'); however, it need not
be. Instead, it could be a URI invented by the server, and so it can
only be used in the context of the server and its CGI interface.
The script URI has the syntax of generic-RL as defined in section 2.1
of RFC 1808 [7], with the exception that object parameters and
fragment identifiers are not permitted:
://:/?
The various components of the script URI are defined by some of the
environment variables (see below);
script-uri = protocol "://" SERVER_NAME ":" SERVER_PORT enc-script
enc-path-info "?" QUERY_STRING
where `protocol' is found from SERVER_PROTOCOL, `enc-script' is a
URL-encoded version of SCRIPT_NAME and `enc-path-info' is a
INTERNET-DRAFT Common Gateway Interface - 1.1 15 February 1996
URL-encoded version of PATH_INFO.
5. Environment variables
Environment variables are used to pass data about the request from
the server to the script. They are accessed by the script in a system
defined manner. In all cases, a missing environment variable is
equivalent to a zero-length (NULL) value, and vice versa. The
representation of the characters in the environment variables is
system defined.
Case is not significant in the names, in that there cannot be two
different variable whose names differ in case only. Here they are
shown using a canonical representation of capitals plus underscore
("_"). The actual representation of the names is system defined; for
a particular system the representation may be defined differently to
this.
The variables are:
=3= |