上周我在我的《计算机网络》课上引起了一场轩然大波,争论的焦点是关于在 HTTP 1.1 GET 消息头中需要强制使用
不管是从网站上看到的还是同学们对我喊出的原因,总是一样的:支持虚拟主机所需。然而,我会尽力清晰地表达,这似乎没有意义。
我理解为了允许两个域名在同一台机器上运行(因此共享相同的 IP 地址),必须有一种区分两个域名的方法。
但我不明白的是,为什么不可能在没有
如果你们这些高手能帮我理解我到底缺少什么,我将非常感激。
Host
子句的必要性。不管是从网站上看到的还是同学们对我喊出的原因,总是一样的:支持虚拟主机所需。然而,我会尽力清晰地表达,这似乎没有意义。
我理解为了允许两个域名在同一台机器上运行(因此共享相同的 IP 地址),必须有一种区分两个域名的方法。
但我不明白的是,为什么不可能在没有
Host
子句的情况下(HTTP 1.0 样式),通过使用绝对 URL(例如 GET http://www.example.org/index.html
)而不是相对 URL(例如 GET /index.html
)来实现这一点。
当 HTTP 消息到达服务器时,服务器将通过查看请求行中消息的 URL 中的主机名(而不是查看 Host
子句)来将消息重定向到适当的主机。如果你们这些高手能帮我理解我到底缺少什么,我将非常感激。