Документ взят из кэша поисковой машины. Адрес оригинального документа : http://old.hcs.cmc.msu.ru/rfc/Classified/www/cgi/env.txt
Дата изменения: Tue Mar 11 15:59:52 1997
Дата индексирования: Mon Oct 1 23:26:54 2012
Кодировка:
CGI Environment Variables

---------------------------------------------------------------------------

In order to pass data about the information request from the server to the
script, the server uses command line arguments as well as environment
variables. These environment variables are set when the server executes the
gateway program.

---------------------------------------------------------------------------

Specification

The following environment variables are not request-specific and are set
for all requests:

* SERVER_SOFTWARE

The name and version of the information server software answering the
request (and running the gateway). Format: name/version

* SERVER_NAME

The server's hostname, DNS alias, or IP address as it would appear in
self-referencing URLs.

* GATEWAY_INTERFACE

The revision of the CGI specification to which this server complies.
Format: CGI/revision

---------------------------------------------------------------------------
The following environment variables are specific to the request being
fulfilled by the gateway program:

* SERVER_PROTOCOL

The name and revision of the information protcol this request came in
with. Format: protocol/revision

* SERVER_PORT

The port number to which the request was sent.

* REQUEST_METHOD

The method with which the request was made. For HTTP, this is "GET",
"HEAD", "POST", etc.

* PATH_INFO

The extra path information, as given by the client. In other words,
scripts can be accessed by their virtual pathname, followed by extra
information at the end of this path. The extra information is sent as
PATH_INFO. This information should be decoded by the server if it
comes from a URL before it is passed to the CGI script.

* PATH_TRANSLATED

The server provides a translated version of PATH_INFO, which takes the
path and does any virtual-to-physical mapping to it.

* SCRIPT_NAME

A virtual path to the script being executed, used for self-referencing
URLs.

* QUERY_STRING

The information which follows the ? in the URL which referenced this
script. This is the query information. It should not be decoded in any
fashion. This variable should always be set when there is query
information, regardless of command line decoding.

* REMOTE_HOST

The hostname making the request. If the server does not have this
information, it should set REMOTE_ADDR and leave this unset.

* REMOTE_ADDR

The IP address of the remote host making the request.

* AUTH_TYPE

If the server supports user authentication, and the script is
protects, this is the protocol-specific authentication method used to
validate the user.

* REMOTE_USER

If the server supports user authentication, and the script is
protected, this is the username they have authenticated as.

* REMOTE_IDENT

If the HTTP server supports RFC 931 identification, then this variable
will be set to the remote user name retrieved from the server. Usage
of this variable should be limited to logging only.

* CONTENT_TYPE

For queries which have attached information, such as HTTP POST and
PUT, this is the content type of the data.

* CONTENT_LENGTH

The length of the said content as given by the client.

---------------------------------------------------------------------------
In addition to these, the header lines received from the client, if any,
are placed into the environment with the prefix HTTP_ followed by the
header name. Any - characters in the header name are changed to _
characters. The server may exclude any headers which it has already
processed, such as Authorization, Content-type, and Content-length. If
necessary, the server may choose to exclude any or all of these headers if
including them would exceed any system environment limits.

An example of this is the HTTP_ACCEPT variable which was defined in
CGI/1.0. Another example is the header User-Agent.

* HTTP_ACCEPT

The MIME types which the client will accept, as given by HTTP headers.
Other protocols may need to get this information from elsewhere. Each
item in this list should be separated by commas as per the HTTP spec.

Format: type/subtype, type/subtype

* HTTP_USER_AGENT

The browser the client is using to send the request. General format:
software/version library/version.

---------------------------------------------------------------------------

Examples

Examples of the setting of environment variables are really much better
demonstrated than explained.

---------------------------------------------------------------------------
[Back] Return to the interface specification

CGI - Common Gateway Interface
cgi@ncsa.uiuc.edu