ASP服务器变量详解
背景介绍
在ASP(Active Server Pages)开发中,服务器变量是用于存储和传递有关HTTP请求的信息的内置对象,这些变量由Web服务器自动填充,并提供有关客户端请求、服务器环境及请求内容的重要信息,了解并掌握这些服务器变量的使用,对于开发高效、可靠的Web应用程序至关重要,本文将详细介绍常见的ASP服务器变量及其应用场景。
目录
1、Request.ServerVariables("URL")
2、Request.ServerVariables("PATH_INFO")
3、Request.ServerVariables("APPL_PHYSICAL_PATH")
4、Request.ServerVariables("PATH_TRANSLATED")
5、Request.ServerVariables("SCRIPT_NAME")
6、Request.ServerVariables("QUERY_STRING")
7、Request.ServerVariables("REMOTE_ADDR")
8、Request.ServerVariables("REMOTE_HOST")
9、Request.ServerVariables("SERVER_PORT")
10、Request.ServerVariables("SERVER_NAME")
11、Request.ServerVariables("HTTP_USER_AGENT")
12、其他常用服务器变量
1. Request.ServerVariables("URL")
URL 服务器变量包含客户端请求的完整URL地址,它包括协议、主机名、端口号以及请求的资源路径,如果客户端请求访问http://www.example.com:80/index.asp?page=1,那么Request.ServerVariables("URL")
将返回这个完整的URL地址。
应用场景:
记录日志时获取完整的请求URL。
重定向用户到其他页面时使用原始请求的URL。
2. Request.ServerVariables("PATH_INFO")
PATH_INFO 包含了客户端提供的额外路径信息,通常用于虚拟路径映射,当脚本被映射到一个虚拟目录时,这个变量可以提供实际的物理路径信息,如果一个请求被发送到http://www.example.com/myapp/somefile.txt,而myapp
是一个虚拟目录,那么Request.ServerVariables("PATH_INFO")
将返回/myapp/somefile.txt
。
应用场景:
处理虚拟目录中的文件请求。
动态生成内容时需要知道具体的文件路径。
3. Request.ServerVariables("APPL_PHYSICAL_PATH")
APPL_PHYSICAL_PATH 提供了与应用程序元数据库路径相对应的物理路径,这对于需要访问服务器上的文件或目录的应用程序非常有用,如果应用程序位于C:\Inetpub\wwwroot\myapp目录下,那么Request.ServerVariables("APPL_PHYSICAL_PATH")
将返回这个物理路径。
应用场景:
读取或写入服务器上的文件。
构建基于文件系统的导航菜单。
4. Request.ServerVariables("PATH_TRANSLATED")
PATH_TRANSLATED 通过由虚拟至物理的映射后得到的路径,它类似于APPL_PHYSICAL_PATH
,但更具体地指向当前请求的文件或资源,如果请求的是http://www.example.com/myapp/somefile.txt,那么Request.ServerVariables("PATH_TRANSLATED")
将返回C:\Inetpub\wwwroot\myapp\somefile.txt。
应用场景:
确定当前请求的实际文件位置。
处理静态文件服务。
5. Request.ServerVariables("SCRIPT_NAME")
SCRIPT_NAME 表示执行脚本的名称,不包括任何查询字符串参数,如果请求的是http://www.example.com/myapp/default.asp?page=1,那么Request.ServerVariables("SCRIPT_NAME")
将返回/myapp/default.asp
。
应用场景:
在自引用页面中使用,以构建相对链接。
确定当前执行的脚本名称。
6. Request.ServerVariables("QUERY_STRING")
QUERY_STRING 包含了HTTP请求中的查询字符串部分,这部分数据通常用于传递参数给服务器端的脚本,如果请求的是http://www.example.com/search.asp?q=asp+server+variables,那么Request.ServerVariables("QUERY_STRING")
将返回q=asp+server+variables
。
应用场景:
处理GET请求中的参数。
实现搜索功能或其他需要参数传递的功能。
7. Request.ServerVariables("REMOTE_ADDR")
REMOTE_ADDR 提供了发出请求的远程主机的IP地址,这对于跟踪用户来源、防止恶意攻击等非常有用,如果一个用户从IP地址192.168.1.100发起请求,那么Request.ServerVariables("REMOTE_ADDR")
将返回这个IP地址。
应用场景:
限制特定IP地址的访问。
记录用户的地理位置信息。
8. Request.ServerVariables("REMOTE_HOST")
REMOTE_HOST 提供了发出请求的远程主机的名称,这通常是DNS解析后的主机名,如果一个用户从主机名client.example.com发起请求,那么Request.ServerVariables("REMOTE_HOST")
将返回这个主机名。
应用场景:
识别客户端的身份。
个性化用户体验。
9. Request.ServerVariables("SERVER_PORT")
SERVER_PORT 表示接受请求的服务器端口号,这对于需要知道服务器监听端口的应用非常有用,如果服务器在端口8080上运行,那么Request.ServerVariables("SERVER_PORT")
将返回8080。
应用场景:
构建完整的URL地址。
配置多端口服务。
10. Request.ServerVariables("SERVER_NAME")
SERVER_NAME 提供了服务器的主机名、DNS地址或IP地址,这对于需要知道服务器身份的应用非常有用,如果服务器的主机名是www.example.com,那么Request.ServerVariables("SERVER_NAME")
将返回这个主机名。
应用场景:
构建完整的URL地址。
配置邮件发送者的电子邮件地址。
11. Request.ServerVariables("HTTP_USER_AGENT")
HTTP_USER_AGENT 提供了客户端浏览器的用户代理字符串,这可以用于检测客户端的浏览器类型和版本,从而提供定制化的内容或功能,如果用户使用的是Mozilla Firefox浏览器,那么Request.ServerVariables("HTTP_USER_AGENT")
将返回相应的用户代理字符串。
应用场景:
根据不同的浏览器提供不同的内容或样式。
统计访问者使用的浏览器类型。
其他常用服务器变量
除了上述常用的服务器变量外,还有许多其他的服务器变量可以使用,以下是一些常见的例子:
ALL_HTTP:客户端发送的所有HTTP标头,前缀为HTTP_。
ALL_RAW:客户端发送的所有HTTP标头,其结果和客户端发送时一样,没有前缀HTTP_。
CONTENT_LENGTH:客户端发出内容的长度。
CONTENT_TYPE的数据类型,同附加信息的查询一起使用。
SERVER_SOFTWARE:应答请求并运行网关的服务器软件的名称和版本。
HTTP_ACCEPT_ENCODING如gzip, deflate等。
HTTP_ACCEPT_LANGUAGE如en-us等。
HTTP_COOKIE:唯一的客户证书ID号。
HTTP_CONNECTION:连接方式,如Keep-Alive等。
HTTP_COOKIE:唯一的客户证书ID号。
HTTP_REFERER:请求的来源页面。
INSTANCE_ID:IIS实例的ID号。
INSTANCE_META_PATH:响应请求的IIS实例的元数据库路径。
LOCAL_ADDR:返回接受请求的服务器地址。
SCRIPT_NAME:执行脚本的名称。
SERVER_PORT_SECURE:如果接受请求的服务器端口为安全端口时,则为1,否则为0。
SERVER_PROTOCOL:服务器使用的协议的名称和版本。
SERVER_SOFTWARE:应答请求并运行网关的服务器软件的名称和版本。
URL:提供URL的基本部分。
QUERY_STRING:查询字符串内容。
REMOTE_ADDR:发出请求的远程主机的IP地址。
REMOTE_HOST:发出请求的远程主机名称。
REMOTE_PORT:发出请求的远程主机的端口号。
REQUEST_METHOD:提出请求的方法比如GET、HEAD、POST等等。
SCRIPT_NAME:执行脚本的名称。
PATH_INFO:客户端提供的路径信息。
PATH_TRANSLATED:通过由虚拟至物理的映射后得到的路径。
APPL_MD_PATH:应用程序的元数据库路径。
Content_Type的数据类型,同附加信息的查询一起使用,如HTTP查询GET、POST和PUT。
GATEWAY_INTERFACE:服务器使用的CGI规格的修订,格式为CGI/revision。
HTTP_<HeaderName>:HeaderName存储在标题文件中的值,未列入此表的标题文件必须以HTTP_作为前缀,以使ServerVariables集合检索其值,注意服务器将HeaderName中的下划线(_)解释为实际标题中的破折号(-),如果您指定HTTP_MY_HEADER,服务器将搜索以MY-HEADER为名发送的标题文件。
HTTPS:如果请求穿过安全通道(SSL),则返回ON如果请求来自非安全通道,则返回OFF。
HTTPS_KEYSIZE:安全套接字层连接关键字的位数,如128。
HTTPS_SECRETKEYSIZE:服务器验证私人关键字的位数如1024。
HTTPS_SERVER_ISSUER:服务器证书的发行者字段。
HTTPS_SERVER_SUBJECT:服务器证书的主题字段。
INSTANCE_ID:文本格式IIS实例的ID,如果实例ID为1,则以字符形式出现,使用该变量可以检索请求所属的(元数据库中)Web服务器实例的ID。
INSTANCE_META_PATH:响应请求的IIS实例的元数据库路径。
小伙伴们,上文介绍了“asp 服务器变量”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。