我正在查看一个我们称之为www.example.com的网站。快速traceroute www.example.com
表示其IP地址为208.76.xx.xxx。
当我浏览Firefox中的“www.example.com”时,我会看到该网站(登录页面)。但是,当我浏览到208.76.xx.xxx时,我显示默认“欢迎使用cPanel!”网页。
以下是一些更多信息:
curl -L www.example.com
返回网站,而curl -L 208.76.xx.xxx
返回“欢迎使用cPanel!”页。curl -LI www.example.com
表示我被重定向到网站的登录页面(按预期方式),而curl -LI 208.76.xx.xxx
没有重定向。有人可以解释为什么导航到网站的域名显示的页面与导航到网站的IP地址完全不同?
感谢您的帮助,随时提出问题/建议测试让我跑。
答案 0 :(得分:11)
它被称为虚拟主机。
一个Web服务器(和IP地址)可以为数千个站点提供服务,HTTP请求中具有不同的Host:字段。
你问浏览器example.org;浏览器告诉服务器
GET / HTTP/1.1
Host: example.org
Connection: close
Web服务器查看它是否可以为example.org提供服务,如果可以的话,它将提供此特定网站的根页面。
代理也是这样工作的:浏览器将每个HTTP请求发送到代理,给予Host:,代理连接到该主机,请求页面并将其返回,缓存。
答案 1 :(得分:2)
这称为虚拟主机。这是Web服务器(Apache等)根据请求中使用的主机名提供不同内容的地方。
答案 2 :(得分:1)
这是Web服务器的配置。 Web服务器将查看请求的主机名,并显示为该主机名配置的网站。
答案 3 :(得分:1)
可以使Web服务器做出不同的反应,具体取决于使用哪个主机名来获取IP地址。这称为基于名称(与基于IP相对)的虚拟主机。 Apache的基于名称的虚拟主机支持文档的Name-based vs. IP-based Virtual Hosts部分详细介绍了该文档。
答案 4 :(得分:0)
两部分:
答案 5 :(得分:0)
简短版本是:它们不是同一个请求。
最可能的答案是alamar提供的内容(我也投了票),但是,还有很多可能的因素没有检查:
1-两个网址导致不同的HTTP请求。
这是HTTP工作方式的结果。在网络级别,您假设建立了相同的连接(到主机名的HTTP端口),这是真的。但是,服务器根据其他应用程序级(HTTP)变量返回内容。
2-实际上没有与IP地址建立连接。有许多机制可以提供网络间接。最重要的是:代理配置和DNS缓存。在任何一种情况下,使用netstat确认连接是最佳的操作过程。
3-第三方正在修改内容。
这可能是出于好的或坏的原因。您可以拥有安全软件,来自WiFi热点的NAT等。