CGI: Input, Environment Variables
|
An environment variable is a named parameter that carries
information from the server to the CGI script.
It is not necessarily a variable in the operating-system's
environment, although that is the most common implementation.
|
Environment variables are used to pass data about the CGI request from
the server to the script. They are accessed by the script in a system
dependent manner. 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.
Environment variable names are case-insensitive; i.e. 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.
- AUTH_TYPE If the server supports user authentication, and the script is protected, this is the protocol-specific authentication method used to validate the user.
- CONTENT_LENGTH The length of the said content as given by the client.
- CONTENT_TYPE For queries which have attached information, such as HTTP POST and PUT, this is the content type of the data.
- GATEWAY_INTERFACE The revision of the CGI specification to which this server complies. Format: CGI/revision
- PATH_INFO The extra path information, as given by the client. Scripts can be accessed by their virtual pathname, followed by extra information at the end of this path. Decoded by the server.
- PATH_TRANSLATED The server provides a translated version of PATH_INFO, which takes the path and does any virtual-to-physical mapping to it.
- QUERY_STRING The information which follows the ? in the URL which referenced this script. It should not be decoded in any fashion.
- REMOTE_ADDR The IP address of the remote host making the request.
- 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_IDENT If the HTTP server supports RFC 931 identification, then this variable will be set to the remote user name retrieved from the server.
- REMOTE_USER If the server supports user authentication, and the script is protected, this is the username they have authenticated as.
- REQUEST_METHOD The method with which the request was made. For HTTP, this is "GET", "HEAD", "POST", etc.
- SCRIPT_NAME A virtual path to the script being executed, used for self-referencing URLs.
- SERVER_NAME The server's hostname, DNS alias, or IP address as it would appear in self-referencing URLs.
- SERVER_PORT Port number to which the request was sent.
- SERVER_PROTOCOL The name and revision of the information protcol this request came in with.
- SERVER_SOFTWARE The name and version of the information server software answering the request (and running the gateway). Format: name/version
See
Common Gateway Interface
RFC Project Page.
This is the repository for the effort (reactivated in November of
1997) to turn the de facto Common Gateway Interface "standard"
into an actual Informational RFC. The current effort has been based
upon a draft composed by David Robinson, and much of his work has
survived. That draft expired in July of 1997, however.
|