创建动态Web网页需要知道的10个服务器变量
在你每次请求Web页面的时候,后台有大量的活动在进行:你的请求被送给一个DNS服务器,IP地址被找到,与相应的Web服务器联系,发回的数据流被解码,再由你的Web浏览器生成为HTML页面。除了对真正的HTML内容的请求,Web服务器还在其响应中包括了很多重要的“服务器变量”。这些变量含有Web服务器环境的信息——它的名字、IP地址和软件——以及当前脚本的执行环境——脚本名字和路径,以及查询字符串。
这些变量常常被聪明的Web开发人员用来增加脚本动态性和稳定性。表格A里的文档简要列出了10个更加有用的服务器变量,Web服务器在响应HTTP请求的时候一般都会发送这些变量,这个表格还会告诉你何时以及如何在你的Web网站上使用它们。
注:并不是所有的Web服务器上都有这些变量。
要获得关于这些以及其他服务器变量的更多信息,请参考《CGI 1.1规范》。
表格A
变量  | 描述  | 用途  | 
HTTP_USER_AGENT  | 发起请求的客户端所发送的身份字符串。例如:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8) Gecko/20051111 Firefox/1.5。  | 客户端的检测和登录;创建用于不同浏览器的不同代码。  | 
HTTP_ACCEPT_ENCODING   | 客户端能够解码的编码列表。  | 比如,使用GZIP编码程序来压缩页面数据,以提高传输的速度。  | 
REMOTE_ADDR  | 发送请求的客户端的IP地址。  | 获取用户的地理位置,用于有针对性的广告或者本地化信息的取回;限制对特定IP地址或者IP地址群的访问。  | 
DOCUMENT_ROOT  | 服务器文档的根目录(在配置文件里定义)。  | 在通过Web应用程序上传、复制或者移动文件的时候创建相对/绝对路径。  | 
SERVER_SOFTWARE  | 服务器的签名,以表明服务器的名字和版本,以及在上面运行的所有软件。例如:Apache/2.0.55 (Win32)。  | 能够识别服务器。  | 
QUERY_STRING  | 跟在被请求的URL里“?”之后的变量-值对的列表。  | 取回或者分析通过URL发送给服务器的变量-值对。  | 
REQUEST_METHOD  | 这个方法用来进行URL请求。例如:GET, POST or PUT。  | 识别用来请求页面的方法,访问用于变量取回的相应命名空间。  | 
SCRIPT_NAME  | 被请求资源的服务器路径(相对于文档的根目录)。  | 取回当前执行的脚本或者资源的名字和路径。  | 
HTTP_ACCEPT_CHARSET  | 客户端能够收到的字符集。  | 用首选的字符集发送页面数据。  | 
REMOTE_USER  | 在使用HTTP身份验证的时候,用于身份验证的用户名。  | 内容个性化;信任书的验证。  |