BackUp LevelNext

Using CGI Environment Variables

Each time a browser makes a request to a server, a set of environment variables are created, some by the Web server and some by the browser.

In ColdFusion, these variables are referred to as CGI environment variables and they use the "CGI" prefix (even if your server is using a server API instead of CGI to communicate to the ColdFusion Server).

The environment variables contain a range of data about the transaction between the browser and the server, such as the IP Address, browser type, and authenticated username. You can reference CGI environment variables for a given page request anywhere in the page. All CGI variables are read-only.

Note

The environment variables available to your applications depend on the browser and server software in use for a given request.

Testing for CGI variables

Because not all CGI variables are supported by every browser, ColdFusion always returns TRUE when testing for the existence of a CGI variable, even if the variable is not supported by the client browser. The way around this is to test for an empty string, instead of a boolean return, to see whether the CGI variable is available.

<CFIF CGI.varname IS NOT "">
    CGI variable exists
<CFELSE>
    CGI variable does not exist
</CFIF>

CGI server variables

The following table describes the most common CGI environment variables created on the server (not all of these will be available with every server):

CGI Server Variables
Variable
Description
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 appears in self-referencing URLs.
GATEWAY_INTERFACE
The revision of the CGI specification to which this server complies. Format: CGI/revision.
SERVER_PROTOCOL
The name and revision of the information protocol 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, and so on.
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. The extra information is sent as PATH_INFO.
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 query information that follows the ? in the URL that referenced this script.
REMOTE_HOST
The hostname making the request. If the server does not have this information, it sets REMOTE_ADDR and does not set REMOTE_HOST.
REMOTE_ADDR
The IP address of the remote host making the request.
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.
REMOTE_USER
AUTH_USER
If the server supports user authentication, and the script is protected, this is the username they have authenticated as. (Also available as AUTH_USER.)
REMOTE_IDENT
If the HTTP server supports RFC 931 identification, this variable is set to the remote username retrieved from the server. Use this variable for logging only.
CONTENT_TYPE
For queries that have attached information, such as HTTP POST and PUT, this is the content type of the data.
CONTENT_LENGTH
The length of the content as given by the client.

CGI client variables

The following chart describes the most common CGI environment variables created by the browser and passed in the request header:

CGI Client Variables
Variable
Description
HTTP_REFERER
The referring document. This is the document that linked to or submitted form data.
HTTP_USER_AGENT
The browser the client is currently using to send the request. Format: software/version library/version.


BackUp LevelNext

allaire

AllaireDoc@allaire.com
Copyright © 1998, Allaire Corporation. All rights reserved.