being used by the server to communicate with the script. Syntax:
GATEWAY_INTERFACE = "CGI" "/" 1*digit "." 1*digit
Note that the major and minor numbers are treated as separate
integers and hence each may be incremented higher than a single
digit. Thus CGI/2.4 is a lower version than CGI/2.13 which in turn
is lower than CGI/12.3. Leading zeros MUST be ignored by the script
and MUST NOT be generated by the server.
This document defines the 1.1 version of the CGI interface.
4.1.5. PATH_INFO
The PATH_INFO variable specifies a path to be interpreted by the CGI
script. It identifies the resource or sub-resource to be returned by
the CGI script, and is derived from the portion of the URI path
hierarchy following the part that identifies the script itself.
Unlike a URI path, the PATH_INFO is not URL-encoded, and cannot
contain path-segment parameters. A PATH_INFO of "/" represents a
single void path segment.
PATH_INFO = "" | ( "/" path )
path = lsegment *( "/" lsegment )
lsegment = *lchar
lchar = <any TEXT or CTL except "/">
RFC 3875 CGI Version 1.1 October 2004
The value is considered case-sensitive and the server MUST preserve
the case of the path as presented in the request URI. The server MAY
impose restrictions and limitations on what values it permits for
PATH_INFO, and MAY reject the request with an error if it encounters
any values considered objectionable. That MAY include any requests
that would result in an encoded "/" being decoded into PATH_INFO, as
this might represent a loss of information to the script. Similarly,
treatment of non US-ASCII characters in the path is system-defined.
URL-encoded, the PATH_INFO string forms the extra-path component of
the Script-URI (see section 3.3) which follows the SCRIPT_NAME part
of that path.
4.1.6. PATH_TRANSLATED
The PATH_TRANSLATED variable is derived by taking the PATH_INFO
value, parsing it as a local URI in its own right, and performing any
virtual-to-physical translation appropriate to map it onto the
server's document repository structure. The set of characters
permitted in the result is system-defined.
PATH_TRANSLATED = *<any character>
This is the file location that would be accessed by a request for
"://" <server-name> ":" <server-port>
where is the scheme for the original client request and
is a URL-encoded version of PATH_INFO, with ";", "=" and
"?" reserved. For example, a request such as the following:
http://somehost.com/cgi-bin/somescript/this%2eis%2epath%3binfo
would result in a PATH_INFO value of
/this.is.the.path;info
An internal URI is constructed from the scheme, server location and
the URL-encoded PATH_INFO:
http://somehost.com/this.is.the.path%3binfo
This would then be translated to a location in the server's document
repository, perhaps a filesystem path something like this:
/usr/local/www/htdocs/this.is.the.path;info
The value of PATH_TRANSLATED is the result of the translation.
RFC 3875 CGI Version 1.1 October 2004
The value is derived in this way irrespective of whether it maps to a
valid repository location. The server MUST preserve the case of the
extra-path segment unless the underlying repository supports case-
insensitive names. If the repository is only case-aware, case-
preserving, or case-blind with regard to document names, the server
is not required to preserve the case of the original segment through
the translation.
The translation algorithm the server uses to derive PATH_TRANSLATED
is implementation-defined; CGI scripts which use this variable may
=8= |