我想在我的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-LineGET /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了。 放弃它不会是一个彻底的改变。