ServerVariables["HTTP_HOST"] 和 ServerVariables["SERVER_NAME"] 有啥区别?
Posted
技术标签:
【中文标题】ServerVariables["HTTP_HOST"] 和 ServerVariables["SERVER_NAME"] 有啥区别?【英文标题】:What's the difference between ServerVariables["HTTP_HOST"] and ServerVariables["SERVER_NAME"]?ServerVariables["HTTP_HOST"] 和 ServerVariables["SERVER_NAME"] 有什么区别? 【发布时间】:2011-08-30 23:36:28 【问题描述】:我对这两个服务器变量之间的区别感到困惑。检查 IIS 文档,它指出:-
HTTP_HOST
返回 Web 服务器的名称。 这可能与也可能不同 SERVER_NAME 取决于名称的类型 您在 Web 上使用的分辨率 服务器(IP 地址,主机头)。
SERVER_NAME
服务器的主机名、DNS 别名或 IP 地址,因为它会出现在 自引用 URL。
有人可以提供一些例子吗?
我们的网络场中有 2 台 IIS 网络服务器 .. 每台都有 2 个网站(当然,每台服务器都相同)。
每个网站大约有 5 个左右的绑定。
那么 .. 值是多少?有什么区别?
【问题讨论】:
不动产:***.com/questions/5710906/… 【参考方案1】:刚刚发现在 IIS 托管的 aspx 页面之一中启用跟踪,SERVER_NAME 仅返回服务器名称,而 HTTP_HOST 返回服务器名称:站点运行的端口。启用跟踪集
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication3.WebForm1" Trace="true" %>
注意 Trace 值
【讨论】:
【参考方案2】:我不了解 ASP.NET,但是在 php 中,$_SERVER['HTTP_HOST']
是客户端在 HTTP 的 Host
标头中发送的内容,而 $_SERVER['SERVER_NAME']
是由网络服务器配置决定的。
【讨论】:
所以如果我通过添加指向另一个网络服务器的自定义条目来破解我的主机文件..然后将该域输入到我的浏览器..并假设目标网络服务器不受主机头限制。 . 然后当我连接时,HTTP_HOST 值将是我在浏览器中输入的域 -> 这是我的自定义域。 ??? 是的。实现相同目的的更简单方法是直接使用 HTTP 请求 tamper。【参考方案3】:HTTP_HOST
是 HTTP 主机标头,可以通过 DNS(添加域并指向您的服务器)或仅通过您计算机上的 HOSTS 文件进行更改。
Windows 上的SERVER_NAME 是机器名称。您可以通过右键单击My Computer
(或 Win10+ 上的计算机)和属性查看名称(或更改它)。
【讨论】:
以上是关于ServerVariables["HTTP_HOST"] 和 ServerVariables["SERVER_NAME"] 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
当应用程序在 IIS 中运行时,如何从 Request.ServerVariables("LOGON_USER") 获取值?