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

我想在我的Web服务器上closures对HTTP/1.0的支持 。 这些服务器托pipe常规网站(MVC.NET)。

  • 什么是潜在的负面影响?
  • 有什么重要的互联网服务使用HTTP/1.0 ,我应该知道的?

HTTP / 1.1是在20年前的1997年1月推出的。每个现代浏览器都使用它,所以禁用对HTTP / 1.0的支持不会影响任何实际的用户。 有些networking爬虫似乎声称他们使用的是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请求资源,浏览器会发送一条消息,其中包含Request-Line

 GET /home.html HTTP/1.0 

example1.org的服务器。 这样可以防止另一个HTTP服务器主机名(例如exampleB.org绑定到同一个IP地址,因为接收到这样的消息的服务器无法知道该消息是用于哪个服务器的。 因此,虚空URL的泛滥导致IP地址分配的扩散。

pipe理IETFstream程的互联网工程指导组织(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了。 放弃它不会是一个彻底的改变。