是否有理由在 Web 服务器上保留对 HTTP/1.0 的支持?

是否有理由在 Web 服务器上保留对 HTTP/1.0 的支持?

我想关闭支持HTTP/1.0在我的网络服务器上。这些服务器托管常规网站 (MVC.NET)。

  • 潜在的负面影响是什么?
  • 有哪些重要的互联网服务HTTP/1.0是我应该注意的?

答案1

HTTP/1.1 于 20 年前的 1997 年 1 月推出。每个现代浏览器都使用它,因此禁用对 HTTP/1.0 的支持不会影响任何实际用户。一些网络爬虫似乎声称他们正在使用HTTP/1.0,但由于这些也出现在虚拟主机(HTTP/1.0 不支持)的日志中,我怀疑它们是否应该完全能够使用 HTTP/1.1。

有关差异的简要说明,请参阅RFC 2616 19.6.1。如果你想更深入地了解,请阅读HTTP/1.0 和 HTTP/1.1 之间的主要区别

让我们回到主要区别之一,第一段中已经提到的虚拟主机:

例如,如果用户对 URL 上的资源发出请求 http://example1.org/home.html,浏览器将发送一条带有请求行的消息

GET /home.html HTTP/1.0 

到 的服务器example1.org。这可以防止将另一个 HTTP 服务器主机名(例如,绑定到相同的 IP 地址)绑定 exampleB.org,因为接收此类消息的服务器无法判断该消息是发往哪个服务器的。因此,虚荣 URL 的激增导致 IP 地址分配的激增。

负责管理 IETF 流程的互联网工程指导小组 (IESG) 坚持要求 HTTP/1.1 采取措施改善 IP 地址的保护。由于 HTTP/1.1 必须与 HTTP/1.0 互操作,因此它无法更改请求行的格式以包含服务器主机名。相反,HTTP/1.1 要求请求包含一个Host 标头,该标头由 John Franks [Fra94] 首次提出,其中包含主机名。这将上述示例转换为:

GET /home.html HTTP/1.1
Host: example1.org 

如果 URL 引用了默认端口 (TCP 端口 80) 以外的端口,则该端口也会在 Host 标头中提供。

如今虚拟主机如此普遍,以至于实际上缺少虚拟主机的情况非常罕见。看看您是否可以通过域名和 IP 地址获得相同的页面。如果没有,那么您已经没有以任何实际方式完全支持 HTTP/1.0;放弃它并不是一个根本性的改变。

相关内容