当前位置:首页 > 行业动态 > 正文

ASP 服务器变量是什么?它们在Web开发中有何作用?

ASP 服务器变量是一组内置对象,用于在服务器端存储和访问用户会话、应用程序状态和应用环境信息。

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:Inetpubwwwrootmyapp目录下,那么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:Inetpubwwwrootmyappsomefile.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 服务器变量”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

0