4

我正在查看一个我们称之为 www.example.com 的网站。快速traceroute www.example.com显示它的 IP 地址是 208.76.xx.xxx 。

当我在 Firefox 中浏览到“www.example.com”时,会显示网站(登录页面)。但是,当我浏览到 208.76.xx.xxx 时,会显示默认的“欢迎使用 cPanel!” 网页。

以下是更多信息:

  1. 当我在 Firefox 中导航到“www.example.com”或“ http://www.example.com ”时,我被重定向到“ http://example.com ”,在那里我看到了正常的网页。
  2. curl -L www.example.com返回网站,同时curl -L 208.76.xx.xxx返回“欢迎使用 cPanel!” 页。
  3. 只看标题:curl -LI www.example.com显示我被重定向到网站的登录页面(如预期的那样),而curl -LI 208.76.xx.xxx没有重定向。
  4. 208.76.xx.xxx 没有出现在我的 hosts 文件中。
  5. 我正在使用 OpenDNS。

有人可以解释为什么导航到该站点的域名显示与导航到该站点的 IP 地址完全不同的页面吗?

感谢您的帮助,请随时提出问题/建议测试让我运行。

4

6 回答 6

12

它被称为虚拟主机。

一个 Web 服务器(和 IP 地址)可以为数千个站点提供服务,在 HTTP 请求中具有不同的 Host: 字段。

您向浏览器询问 example.org;浏览器告诉服务器

GET / HTTP/1.1
Host: example.org
Connection: close

Webserver 查看它是否可以为 example.org 提供服务,如果可以,它将为该特定站点提供根页面。

代理也以这种方式工作:您的浏览器将每个 HTTP 请求发送到代理,提供 Host:,代理连接到该主机,请求一个页面并将其返回,缓存。

于 2009-06-05T19:17:12.743 回答
2

这称为虚拟主机。它是网络服务器(Apache 等)根据请求中使用的主机名提供不同内容的地方。

于 2009-06-05T19:18:38.510 回答
1

这是Web服务器的配置。Web 服务器将查看请求的主机名,并显示为该主机名配置的网站。

于 2009-06-05T19:17:48.653 回答
1

根据用于访问 IP 地址的主机名,可以使 Web 服务器做出不同的反应。这称为基于名称(相对于基于 IP)的虚拟主机。Apache的基于名称的虚拟主机支持文档的基于名称与基于 IP 的虚拟主机部分更详细地解释了。

于 2009-06-05T19:21:56.163 回答
0

两部分:

  1. 对服务器的 http 请求包括主机名,因此服务器上的 http 服务可以根据您尝试连接的网站做出不同的响应。(我昨晚才知道这一点)。
  2. 重定向是基于主机名而不是 IP 地址发生的。如果您不使用主机名,则服务器不知道如何重定向您。
于 2009-06-05T19:22:23.323 回答
0

简短的版本是:它们不是同一个请求。

最有可能的答案是 alamar 提供的(我也投了赞成票),但还有很多您没有检查的可能因素:

1- 这两个 url 导致不同的 HTTP 请求。

这是 HTTP 工作方式的结果。在网络级别,您假设建立了相同的连接(到主机名的 HTTP 端口),这是真的。但是,服务器会根据其他应用程序级 (HTTP) 变量返回内容。

2-实际上并未与IP地址建立连接。有许多提供网络间接的机制。最重要的是:代理配置和 DNS 缓存。在任何一种情况下,使用 netstat 来确认连接都是最好的做法。

3- 第三方正在修改内容。

这可能是好的或坏的原因。您可以拥有安全软件、来自 WiFi 热点的 NAT 等。

于 2009-06-10T18:16:46.347 回答