有没有人有一个例子,每个变量会给予什么和变量之间的差异,其中有微妙的变化,他们之间的IIS重写服务器变量。微软做了一个可怕的工作,给出的例子,使它几乎不可能弄清楚哪个变量使用的时间和地点。我相信还有其他人会从中受益。
https://learn.microsoft.com/en-us/iis/web-dev-reference/server-variables
我开始一个样本答案的变量,请采取在它的裂缝,让我们尝试建立一个全面的列表的例子,每个变量将包含什么。
有没有人有一个例子,每个变量会给予什么和变量之间的差异,其中有微妙的变化,他们之间的IIS重写服务器变量。微软做了一个可怕的工作,给出的例子,使它几乎不可能弄清楚哪个变量使用的时间和地点。我相信还有其他人会从中受益。
https://learn.microsoft.com/en-us/iis/web-dev-reference/server-variables
我开始一个样本答案的变量,请采取在它的裂缝,让我们尝试建立一个全面的列表的例子,每个变量将包含什么。
2条答案
按热度按时间ubof19bj1#
第二部分
请根据您的经验和知识更新示例(如有可能,请引用源代码)
| 产品说明|实施例| EXAMPLE |
| --|--| ------------ |
| IIS网站识别码。|||
| 响应请求的IIS示例的元数据库路径。|||
| IIS网站名称。|||
| 请求传入的服务器地址。|这对于可能有多个IP地址绑定到计算机,并且您希望找出请求使用的地址的计算机非常重要。||
| 连接到Web服务器时,用户模拟的Windows帐户。|使用REMOTE_USER、UNMAPPED_REMOTE_USER或AUTH_USER查看请求标头中包含的原始用户名。只有在安装了身份验证筛选器的情况下,LOGON_USER才具有与这些其他变量不同的值。||
| 正在运行处理请求的IIS工作进程的应用程序池的托管管道模式。|||
| 客户端提供的路径信息,例如/vdir/myisapi.dll/zip。|如果此信息来自URL,则在将其传递到CGI脚本或ISAPI筛选器之前,服务器会对其进行解码。If the AllowPathInfoForScriptMappings metabase property is set to true (to support exclusive CGI functionality), PATH_INFO will only contain /zip and ISAPI applications such as ASP will break.For example,
http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3
将返回/content/default.aspx
| For example ,http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3
would return/content/default.aspx
|| Map到PATH_INFO中的虚拟路径的物理路径。|IIS在处理ISAPI应用程序期间使用此变量。If the AllowPathInfoForScriptMappings metabase property is set to true (to support exclusive CGI functionality), PATH_INFO will only contain /zip and ISAPI applications such as ASP will break.的例如,
c:\inetpub\wwwroot\vdir\myisapi.dll
| For example,c:\inetpub\wwwroot\vdir\myisapi.dll
|| 查询存储在问号(?)后面的字符串中的信息|)。For example、
http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3
将返回tabid=2&subtabid=3
| For example ,http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3
would returntabid=2&subtabid=3
|| 发出请求的远程主机的IP地址。|||
| 发出请求的主机的名称。|如果服务器没有此信息,它将设置REMOTE_ADDR并将其留空.||
| TCP连接的客户端端口号。|||
| 在将用户名Map到Windows帐户之前,从客户端发送的授权标头派生的用户名。|如果您的Web服务器上安装了将传入用户Map到帐户的身份验证筛选器,请使用LOGON_USER查看Map的用户名。||
| 当前请求的物理路径。|||
| The Flags of HTTP_REQUEST.的|例如,将为HTTP/2请求设置
HTTP_REQUEST_FLAG_HTTP2
标志。||| 用于发出请求的方法。|||
| URI的绝对路径部分。|For example、
http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3
将返回/content/default.aspx?tabid=2&subtabid=3
| For example ,http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3
would return/content/default.aspx?tabid=2&subtabid=3
|| 当前请求的物理路径。|||
| 正在执行的脚本的虚拟路径。|||
| 所请求文件的扩展长度路径(前缀为\?|\).||
| 站点绑定到的IP地址。|例如,
197.223.3.2
| For example,197.223.3.2
|| 服务器的主机名称、DNS别名或IP位址,就像它会出现在自我指涉URL中一样。|例如,
http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3
将返回www.contoso.com
| For example,http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3
would returnwww.contoso.com
|| 请求所发送到的服务器端口号。|例如,
http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3
将返回8080
| For example,http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3
would return8080
|| 包含0或1的字符串。|如果请求是在安全端口上处理的,则此值为1。否则为0。例如,如果请求是在安全端口上处理的,则此值为
1
,否则为0
| For example, if the request is being handled on the secure port, then this is1
, otherwise it is0
|| 请求信息协议的名称和修订版本。|格式为方案/版本。(HTTP_VERSION的规范化形式。)||
| 响应请求并运行网关的服务器软件的名称和版本。|格式为名称/版本。||
| 带有double encoding选项的原始未编码
REQUEST_URI
URL。|For example,则http://www.contoso.com:8080/content/default.aspx?tabid=2"&sub tabid=3
将返回/content/default.aspx?tabid=2%22&subt%20abid=3
| For example ,http://www.contoso.com:8080/content/default.aspx?tabid=2"&sub tabid=3
would return/content/default.aspx?tabid=2%22&subt%20abid=3
|| 在将用户名Map到Windows帐户(与REMOTE_USER相同)之前,从客户端发送的授权标头派生的用户名。|如果您的Web服务器上安装了将传入用户Map到帐户的身份验证筛选器,请使用LOGON_USER查看Map的用户名。||
| 不含任何查询字串信息的URL基底部分。|For example,则
http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3
将返回/content/default.aspx
| For example ,http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3
would return/content/default.aspx
|qco9c6ql2#
第一部分
请根据您的经验和知识更新示例(如有可能,请引用源代码)
| 产品说明|实施例| EXAMPLE |
| --|--| ------------ |
| 由客户端发送的所有HTTP标头。|标头以HTTP_作为前缀并大写.例如,
HTTP_ACCEPT_ENCODING:gzip, deflate, br
| For example,HTTP_ACCEPT_ENCODING:gzip, deflate, br
|| 客户端以原始格式发送的所有HTTP标头。|例如,
Accept-Encoding: gzip, deflate, br
| For example,Accept-Encoding: gzip, deflate, br
|| 应用程序的元数据库路径。|||
| 应用程序的物理路径。|||
| 临时IIS应用程序池配置的物理路径。|||
| 正在运行处理请求的IIS工作进程的应用程序池的名称。|||
| 客户端提供的密码,以使用基本身份验证进行身份验证。|||
| 服务器用于验证用户的身份验证方法。|如果AUTH_TYPE包含一个值,并且身份验证方案不是基本身份验证或集成Windows身份验证,则这并不意味着用户已通过身份验证。服务器允许它本身不支持的身份验证方案,因为ISAPI筛选器可能能够处理该特定方案。||
| 在将用户名Map到Windows帐户之前,从客户端发送的授权标头派生的用户名。|此变量与REMOTE_USER没有区别。如果您的Web服务器上安装了将传入用户Map到帐户的身份验证筛选器,请使用LOGON_USER查看Map的用户名。||
| 这包含了entire URL。|仅限在ISAPI应用程序中使用。返回当前URL的明确名称。有必要将此变量的Unicode版本与内核模式缓存失效函数结合使用,以收回HSE_REQ_VECTOR_SEND放入该高速缓存中的条目。For example和
https://contoso.com:8042/vdir/default.aspx?querystring
将返回|https://contoso.com:8042/vdir/default.aspx?querystring
个https://contoso.com:8042/vdir/default.aspx?querystring
|| 作为字符串返回的客户端证书的唯一ID。|这可用作整个客户端证书的签名。||
| 如果客户端证书存在,则bit 0被设置为1。|如果客户端证书的证书颁发机构无效(即,它不在服务器上可识别的证书颁发机构列表中),则bit 0设置为1。如果CERT_FLAGS的比特1设定为1,表示凭证无效,IIS 4.0版及更新的版本将会拒绝凭证。早期版本的IIS不会拒绝该证书。||
| 客户端证书的颁发者字段。|||
| SSL/TLS连接密钥大小中的位数。|||
| SSL/TLS服务器私钥中的位数。|||
| 客户端证书的序列号。|||
| 服务器证书的颁发者字段。|||
| 服务器证书的主题字段。|||
| 客户端证书的主题字段。|||
| 请求正文的长度。|||
| 请求正文的MIME类型。|与具有附加信息的查询一起使用,例如GET、POST和PUT。||
| The cryptographic cipher algorithm used to establish the connection. The hex value of the algorithm is established in the ALG_ID data type.的|例如,256位AES(CALG_AES_256)将为
6610
| For example, 256-bit AES(CALG_AES_256) will be6610
|| The hashing algorithm used for generating Message Authentication Codes (MACs). The hex value of the algorithm is established in the ALG_ID data type.的|例如,MD5(CALG_MD5)将是
8003
| For example, MD5(CALG_MD5) will be8003
|| The key-exchange algorithm used to establish the connection. The hex value of the algorithm is established in the ALG_ID data type.的|例如,椭圆曲线Diffie-Hellman密钥交换算法(CALG_ECDH)将是
aa05
| For example, Elliptic curve Diffie-Hellman key exchange algorithm(CALG_ECDH) will beaa05
|| The cryptographic protocol used to establish the connection. The hex value of the protocol is established in the SecPkgContext_ConnectionInfo structure.的|例如,TLS 1.2将是
400
| For example, TLS 1.2 will be400
|| IIS网站目录的物理路径。|||
| 转发的URL。|||
| 服务器使用的CGI规范的修订版。|格式为CGI/修订版。||
| 如果请求是通过安全通道(例如SSL)传入的,则返回ON;|或者如果请求是针对不安全的通道,则返回OFF。如果请求是通过安全通道(例如SSL)传入的,则返回
ON
。|或者如果请求是针对不安全信道,则返回OFF
。|| SSL/TLS连接密钥大小的位数。|||
| 服务器证书私钥中的位数。|||
| 服务器证书的颁发者字段。|||
| 服务器证书的主题字段。|||
| 用于发出请求的方法。|||
| server host包括server port|例如,
http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3
将返回www.contoso.com:8080
| For example,http://www.contoso.com:8080/content/default.aspx?tabid=2&subtabid=3
would returnwww.contoso.com:8080
|| 原始编码的URL。|例如,
https://contoso.com:8042/vdir/default.aspx?querystring
将返回|/vdir/default.aspx?querystring
个/vdir/default.aspx?querystring
|| 请求协议的名称和版本(SERVER_PROTOCOL的原始形式)。|||