当我从命令提示符中使用 tracert facebook.com 时,我得到了 IP 地址 157.240.18.35
当我将 157.240.18.35 放入多功能栏时,它会直接带我进入 Facebook。
现在,当我使用 tracert rot13.com 时,它会带我回到 IP 地址 216.92.143.231
当我将 216.92.143.231 放入多功能栏时,它会将我带到 travisjhicks.com ,它看起来是一个完全不同的网站。
这是为什么?我现在正在学习网络,如果这不是正确的论坛,请原谅,我对 Stackexchange 和论坛都很陌生。我通常只是在 Google 上寻找答案,但这个问题我找不到。
答案1
由于 IP(v4)地址短缺,http 和 https 协议具有在单个 IP 地址上托管多个网站的机制。
对于 216.92.143.231,默认地址为“travishicks.com”。这可能有特定的原因,但很可能是随机的,并且代表 Web 服务器配置文件或类似文件中的第一个有效条目。
一个典型的(非常简单的)HTTP 页面请求可能看起来像:
telnet 216.92.143.231 80
GET / HTTP/1.1
host: www.rot13.com
(然后服务器会将索引页吐出到www.rot13.com)。请注意第三行 - Web 客户端告诉服务器它想要哪个地址。对于 HTTPS,由于 https 被包裹在连接和关联的域名周围,因此该过程要复杂得多 - 以及为什么当您通过 IP 地址访问网站时应该收到潜在安全风险警告的原因 - 但想法是一样的 - 浏览器告诉服务器它想要的网站,然后服务器做出响应。
服务器以其认为合适的任何网站进行响应是完全可行的 - 这正是这里发生的情况。