ServerVariables 集合检索预定的环境变量-----Request.ServerVariables大全(2006-04-20 16:25)
网上有很多帖子对这个由详细的讲解,作为菜鸟的我认为学东西一定要自己多动手,多谢代码,这样才有感觉,有个高手对我说:要人剑合一,到达一定的高度后放眼现在的各种开发工具都一样,好了不说了,说正题
ServerVariables 集合检索预定的环境变量,我们可以通过一个程序在自己的电脑上获得(灵感来自于ASP的一个例子),下面是我的代码:
private void Button2_Click(object sender, System.EventArgs e)
{
//为了工整,用表格显示,左边是属性,右边是本机的输出值
string str = null;
this.Response.Write("<table border=1 width=800>");
foreach(string var in System.Web.HttpContext.Current.Request.ServerVariables)
{
str = System.Web.HttpContext.Current.Request.ServerVariables[var];
this.Response.Write("<tr>");
this.Response.Write("<td><font color=red>" + var + "</font></td>");
this.Response.Write("<td>" + str + "</td></tr>");
}
this.Response.Write("</table>");
}
在我电脑上的输出效果(见笑了)
下面是我在网上找的具体的说明,不过我觉得自由在自己的电脑上测试才能理解的更深
ServerVariables 集合检索预定的环境变量。
语法
ASP.NET语法:
Request.ServerVariables [int index]; Request.ServerVariables [string name];asp语法:Request.ServerVariables (server environment variable); 参数
服务器环境变量
指定要检索的服务器环境变量名。可以使用下面列出的值。 变量 说明
ALL_HTTP 客户端发送的所有 HTTP 标题文件。
ALL_RAW 检索未处理表格中所有的标题。ALL_RAW 和 ALL_HTTP 不同,ALL_HTTP 在标题文件名前面放置 HTTP_ prefix,并且标题名称总是大写的。使用 ALL_RAW 时,标题名称和值只在客户端发送时才出现。
APPL_MD_PATH 检索 ISAPI DLL 的 (WAM) Application 的元数据库路径。
APPL_PHYSICAL_PATH 检索与元数据库路径相应的物理路径。IIS 通过将 APPL_MD_PATH 转换为物理(目录)路径以返回值。
AUTH_PASSWORD 该值输入到客户端的鉴定对话中。只有使用基本鉴定时,该变量才可用。
AUTH_TYPE 这是用户访问受保护的脚本时,服务器用于检验用户的验证方法。
AUTH_USER 未被鉴定的用户名。
CERT_COOKIE 客户端验证的唯一 ID,以字符串方式返回。可作为整个客户端验证的签字。
CERT_FLAGS 如有客户端验证,则 bit0 为 1。
如果客户端验证的验证人无效(不在服务器承认的 CA 列表中),bit1 被设置为 1。
CERT_ISSUER 用户验证中的颁布者字段(O=MS,OU=IAS,CN=user name,C=USA)。
CERT_KEYSIZE 安全套接字层连接关键字的位数,如 128。
CERT_SECRETKEYSIZE 服务器验证私人关键字的位数。如 1024。
CERT_SERIALNUMBER 用户验证的序列号字段。
CERT_SERVER_ISSUER 服务器验证的颁发者字段。
CERT_SERVER_SUBJECT 服务器验证的主字段。
CERT_SUBJECT 客户端验证的主字段。
CONTENT_LENGTH 客户端发出内容的长度。
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 实例的元数据库路径。
LOCAL_ADDR 返回接受请求的服务器地址。如果在绑定多个 IP 地址的多宿主机器上查找请求所使用的地址时,这条变量非常重要。
LOGON_USER 用户登录 Windows NT® 的帐号。
PATH_INFO 客户端提供的额外路径信息。可以使用这些虚拟路径和 PATH_INFO 服务器变量访问脚本。如果该信息来自 URL,在到达 CGI 脚本前就已经由服务器解码了。
PATH_TRANSLATED PATH_INFO 转换后的版本,该变量获取路径并进行必要的由虚拟至物理的映射。
QUERY_STRING 查询 HTTP 请求中问号(?)后的信息。
REMOTE_ADDR 发出请求的远程主机的 IP 地址。
REMOTE_HOST 发出请求的主机名称。如果服务器无此信息,它将设置为空的 MOTE_ADDR 变量。
REMOTE_USER 用户发送的未映射的用户名字符串。该名称是用户实际发送的名称,与服务器上验证过滤器修改过后的名称相对。
REQUEST_METHOD 该方法用于提出请求。相当于用于 HTTP 的 GET、HEAD、POST 等等。
SCRIPT_NAME 执行脚本的虚拟路径。用于自引用的 URL。
SERVER_NAME 出现在自引用 UAL 中的服务器主机名、DNS 化名或 IP 地址。
SERVER_PORT 发送请求的端口号。
SERVER_PORT_SECURE 包含 0 或 1 的字符串。如果安全端口处理了请求,则为 1,否则为 0。
SERVER_PROTOCOL 请求信息协议的名称和修订。格式为 protocol/revision 。
SERVER_SOFTWARE 应答请求并运行网关的服务器软件的名称和版本。格式为 name/version 。
URL 提供 URL 的基本部分。
ServerVariables 集合检索预定的环境变量,我们可以通过一个程序在自己的电脑上获得(灵感来自于ASP的一个例子),下面是我的代码:
private void Button2_Click(object sender, System.EventArgs e)
{
//为了工整,用表格显示,左边是属性,右边是本机的输出值
string str = null;
this.Response.Write("<table border=1 width=800>");
foreach(string var in System.Web.HttpContext.Current.Request.ServerVariables)
{
str = System.Web.HttpContext.Current.Request.ServerVariables[var];
this.Response.Write("<tr>");
this.Response.Write("<td><font color=red>" + var + "</font></td>");
this.Response.Write("<td>" + str + "</td></tr>");
}
this.Response.Write("</table>");
}
在我电脑上的输出效果(见笑了)
ALL_HTTP | HTTP_CACHE_CONTROL:no-cache HTTP_CONNECTION:Keep-Alive HTTP_CONTENT_LENGTH:75 HTTP_CONTENT_TYPE:application/x-www-form-urlencoded HTTP_ACCEPT:*/* HTTP_ACCEPT_ENCODING:gzip, deflate HTTP_ACCEPT_LANGUAGE:zh-cn HTTP_COOKIE:ASP.NET_SessionId=ehfm2min4is5izavahz2voqu HTTP_HOST:localhost HTTP_REFERER:http://localhost/csharp/httpcontext01.aspx HTTP_USER_AGENT:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; TencentTraveler ; .NET CLR 1.1.4322) |
ALL_RAW | Cache-Control: no-cache Connection: Keep-Alive Content-Length: 75 Content-Type: application/x-www-form-urlencoded Accept: */* Accept-Encoding: gzip, deflate Accept-Language: zh-cn Cookie: ASP.NET_SessionId=ehfm2min4is5izavahz2voqu Host: localhost Referer: http://localhost/csharp/httpcontext01.aspx User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; TencentTraveler ; .NET CLR 1.1.4322) |
APPL_MD_PATH | /LM/w3svc/1/root/csharp |
APPL_PHYSICAL_PATH | c:\inetpub\wwwroot\csharp\ |
AUTH_TYPE | |
AUTH_USER | |
AUTH_PASSWORD | |
LOGON_USER | |
REMOTE_USER | |
CERT_COOKIE | |
CERT_FLAGS | |
CERT_ISSUER | |
CERT_KEYSIZE | |
CERT_SECRETKEYSIZE | |
CERT_SERIALNUMBER | |
CERT_SERVER_ISSUER | |
CERT_SERVER_SUBJECT | |
CERT_SUBJECT | |
CONTENT_LENGTH | 75 |
CONTENT_TYPE | application/x-www-form-urlencoded |
GATEWAY_INTERFACE | CGI/1.1 |
HTTPS | off |
HTTPS_KEYSIZE | |
HTTPS_SECRETKEYSIZE | |
HTTPS_SERVER_ISSUER | |
HTTPS_SERVER_SUBJECT | |
INSTANCE_ID | 1 |
INSTANCE_META_PATH | /LM/W3SVC/1 |
LOCAL_ADDR | 127.0.0.1 |
PATH_INFO | /csharp/httpcontext01.aspx |
PATH_TRANSLATED | c:\inetpub\wwwroot\csharp\httpcontext01.aspx |
QUERY_STRING | |
REMOTE_ADDR | 127.0.0.1 |
REMOTE_HOST | 127.0.0.1 |
REMOTE_PORT | 3039 |
REQUEST_METHOD | POST |
SCRIPT_NAME | /csharp/httpcontext01.aspx |
SERVER_NAME | localhost |
SERVER_PORT | 80 |
SERVER_PORT_SECURE | 0 |
SERVER_PROTOCOL | HTTP/1.1 |
SERVER_SOFTWARE | Microsoft-IIS/5.0 |
URL | /csharp/httpcontext01.aspx |
HTTP_CACHE_CONTROL | no-cache |
HTTP_CONNECTION | Keep-Alive |
HTTP_CONTENT_LENGTH | 75 |
HTTP_CONTENT_TYPE | application/x-www-form-urlencoded |
HTTP_ACCEPT | */* |
HTTP_ACCEPT_ENCODING | gzip, deflate |
HTTP_ACCEPT_LANGUAGE | zh-cn |
HTTP_COOKIE | ASP.NET_SessionId=ehfm2min4is5izavahz2voqu |
HTTP_HOST | localhost |
HTTP_REFERER | http://localhost/csharp/httpcontext01.aspx |
HTTP_USER_AGENT | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; TencentTraveler ; .NET CLR 1.1.4322) |
下面是我在网上找的具体的说明,不过我觉得自由在自己的电脑上测试才能理解的更深
ServerVariables 集合检索预定的环境变量。
语法
ASP.NET语法:
Request.ServerVariables [int index]; Request.ServerVariables [string name];asp语法:Request.ServerVariables (server environment variable); 参数
服务器环境变量
指定要检索的服务器环境变量名。可以使用下面列出的值。 变量 说明
ALL_HTTP 客户端发送的所有 HTTP 标题文件。
ALL_RAW 检索未处理表格中所有的标题。ALL_RAW 和 ALL_HTTP 不同,ALL_HTTP 在标题文件名前面放置 HTTP_ prefix,并且标题名称总是大写的。使用 ALL_RAW 时,标题名称和值只在客户端发送时才出现。
APPL_MD_PATH 检索 ISAPI DLL 的 (WAM) Application 的元数据库路径。
APPL_PHYSICAL_PATH 检索与元数据库路径相应的物理路径。IIS 通过将 APPL_MD_PATH 转换为物理(目录)路径以返回值。
AUTH_PASSWORD 该值输入到客户端的鉴定对话中。只有使用基本鉴定时,该变量才可用。
AUTH_TYPE 这是用户访问受保护的脚本时,服务器用于检验用户的验证方法。
AUTH_USER 未被鉴定的用户名。
CERT_COOKIE 客户端验证的唯一 ID,以字符串方式返回。可作为整个客户端验证的签字。
CERT_FLAGS 如有客户端验证,则 bit0 为 1。
如果客户端验证的验证人无效(不在服务器承认的 CA 列表中),bit1 被设置为 1。
CERT_ISSUER 用户验证中的颁布者字段(O=MS,OU=IAS,CN=user name,C=USA)。
CERT_KEYSIZE 安全套接字层连接关键字的位数,如 128。
CERT_SECRETKEYSIZE 服务器验证私人关键字的位数。如 1024。
CERT_SERIALNUMBER 用户验证的序列号字段。
CERT_SERVER_ISSUER 服务器验证的颁发者字段。
CERT_SERVER_SUBJECT 服务器验证的主字段。
CERT_SUBJECT 客户端验证的主字段。
CONTENT_LENGTH 客户端发出内容的长度。
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 实例的元数据库路径。
LOCAL_ADDR 返回接受请求的服务器地址。如果在绑定多个 IP 地址的多宿主机器上查找请求所使用的地址时,这条变量非常重要。
LOGON_USER 用户登录 Windows NT® 的帐号。
PATH_INFO 客户端提供的额外路径信息。可以使用这些虚拟路径和 PATH_INFO 服务器变量访问脚本。如果该信息来自 URL,在到达 CGI 脚本前就已经由服务器解码了。
PATH_TRANSLATED PATH_INFO 转换后的版本,该变量获取路径并进行必要的由虚拟至物理的映射。
QUERY_STRING 查询 HTTP 请求中问号(?)后的信息。
REMOTE_ADDR 发出请求的远程主机的 IP 地址。
REMOTE_HOST 发出请求的主机名称。如果服务器无此信息,它将设置为空的 MOTE_ADDR 变量。
REMOTE_USER 用户发送的未映射的用户名字符串。该名称是用户实际发送的名称,与服务器上验证过滤器修改过后的名称相对。
REQUEST_METHOD 该方法用于提出请求。相当于用于 HTTP 的 GET、HEAD、POST 等等。
SCRIPT_NAME 执行脚本的虚拟路径。用于自引用的 URL。
SERVER_NAME 出现在自引用 UAL 中的服务器主机名、DNS 化名或 IP 地址。
SERVER_PORT 发送请求的端口号。
SERVER_PORT_SECURE 包含 0 或 1 的字符串。如果安全端口处理了请求,则为 1,否则为 0。
SERVER_PROTOCOL 请求信息协议的名称和修订。格式为 protocol/revision 。
SERVER_SOFTWARE 应答请求并运行网关的服务器软件的名称和版本。格式为 name/version 。
URL 提供 URL 的基本部分。