Назад | Перейти на главную страницу

Есть ли причина сохранить поддержку HTTP / 1.0 на веб-сервере?

Я бы хотел отключить поддержку HTTP/1.0 на моих веб-серверах. На этих серверах размещаются обычные веб-сайты (MVC.NET).

HTTP / 1.1 был представлен 20 лет назад, в январе 1997 года. Каждый современный браузер использует его, поэтому отключение поддержки 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-сервера, например exampleB.org на тот же IP-адрес, поскольку сервер, получающий такое сообщение, не может определить, для какого сервера это сообщение предназначено. Таким образом, распространение тщеславных URL приводит к увеличению количества выделенных IP-адресов.

Руководящая группа Интернет-инжиниринга (IESG), которая управляет процессом IETF, настаивала на том, чтобы HTTP / 1.1 предпринял шаги для улучшения сохранения IP-адресов. Поскольку HTTP / 1.1 должен был взаимодействовать с HTTP / 1.0, он не мог изменить формат строки запроса, чтобы включить имя хоста сервера. Вместо этого HTTP / 1.1 требует, чтобы запросы включали Host заголовок, впервые предложенный Джоном Фрэнксом [Fra94], который несет имя хоста. Это преобразует приведенный выше пример в:

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

Если URL-адрес ссылается на порт, отличный от порта по умолчанию (TCP-порт 80), это также указывается в заголовке Host.

Виртуальные хосты в наши дни настолько распространены, что их действительно очень мало. Посмотрите, получаете ли вы одну и ту же страницу с вашим доменным именем и IP-адресом или нет. Если вы этого не сделаете, вы уже не полностью поддерживаете HTTP / 1.0 на практике; отказ от него не будет радикальным изменением.