10 useful server variables you should know for creating dynamic Web pages

This document outlines some of the more useful server variables that a Web server typically sends out when it responds to an HTTP request and explains when and how you could use each one for your Web site.

Every time you request a Web page, an immense amount of activity takes place behind the scenes: your request is sent to a DNS server, an IP address is found, the corresponding Web server is contacted, and the resulting data stream is decoded and rendered by your Web browser as an HTML page. In addition to the actual HTML content requested, however, the Web server also includes a number of important "server variables" in its response. These variables contain information about both the Web server environment - its name, IP address and software - and the current script execution environment - the script name and path and the query string.

These variables are often used by clever Web developers to make their scripts more dynamic and robust. This document outlines (Table A) some of the more useful server variables that a Web server typically sends out when it responds to an HTTP request, and also explains when and how you could use each one on your Web site.

Note: Some of these variables may not be available in all Web servers.

For more information on these and other server variables, consider taking a look at the CGI 1.1 specification.

Table A


What It Contains

What It's Useful For


An identification string sent by the client making the request. For example:

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8) Gecko/20051111 Firefox/1.5.

Client detection and logging; creating code that works differently in different browsers.


The list of encodings the client is able to decode.

Improving transfer speeds by using GZIP encoding (for example) to compress page data.


The IP address of the client making the request.

Obtaining the user's geographical location for targeted advertising or localized information retrieval; restricting access to specific IP addresses or groups of IP addresses.


The server's document root directory (as defined in its configuration).

Constructing relative/absolute paths when uploading, copying or moving files through a Web application.


The server's signature, indicating the name and version of the server as well as any software running on it. For example:

Apache/2.0.55 (Win32).

Identifying server capabilities.


The list of variable-value pairs that follow the "?" in the requested URL.

Retrieving and parsing the variable-value pairs sent to the server via its URL.


The method used to make the URL request. For example


Identifying the method used to request the page, and thereby accessing the appropriate namespace for variable retrieval.


The server path to the requested resource (relative to the document root).

Retrieving the name and path to the currently-executing script or resource.


The character sets the client is able to receive.

Sending page data in a preferred character set.


When using HTTP authentication, the username supplied for authentication.

Content personalization; credential verification.