HTTP/1.0 все еще используется?
Скажем, нужно написать HTTP сервер / клиент, насколько важно поддерживать HTTP/1.0? Это все еще используется где-нибудь в наши дни?
Изменить: меня меньше беспокоит полезность / важность HTTP / 1.0, а скорее количество программного обеспечения, которое фактически использует его для внутренних целей (например, модульное тестирование для внутреннего использования) в реальных условиях (браузеры, роботы, смартфоны / глупые телефоны и т.д...).
7 ответов
Начиная с 2016 года, вы могли бы подумать, что известность уменьшится еще больше, так как 1.1 была введена в 1999 году, то есть около 17 лет.
Я проверил 7,727,198 строк журналов, чтобы увидеть, какой процент я получаю HTTP/1.0
а также HTTP/1.1
:
Protocol Counts Percent
--------------------------------
HTTP/0.9 0 0.00%
HTTP/1.0 1,636,187 21.17% (all)
HTTP/1.0 15,415 0.20% (without the obvious robots)
HTTP/1.1 6,091,011 78.83%
HTTP/2 0 0.00%
Из того, что я вижу, большинство HTTP/1.0
от роботов. Поэтому я попытался удалить записи, которые явно были из таких (например, агент, включающий слово "робот", "бот", "slurp" и т.д.)
Таким образом, похоже, что количество конечных пользователей все еще HTTP/1.0
сегодня очень ограничен (0,2%). Однако, если вы хотите, чтобы роботы проверяли ваши сайты, вам может понадобиться / вы хотите сохранить HTTP/1.0 в рабочем состоянии. Большинство в любом случае будет включать Host: ...
заголовок, хотя они рекламируют свое соединение как HTTP/1.0
протокол.
Кроме того, различия между HTTP/1.0
а также HTTP/1.1
очень размыто с точки зрения реализации. Большинство людей счастливо смешивают оба. Я бы не стал слишком беспокоиться о том, чтобы принимать / обрабатывать HTTP/1.0
Запросы.
На другом сервере я начинаю видеть HTTP/2.0
запросы, которые выглядят так (получил 2427, и я вижу 34,161,268 HTTP/1.0
а также HTTP/1.1
запросов, так что 0,007%):
PRI * HTTP/2.0
wget
использует HTTP/1.0, и он все еще относительно популярен (хотя он поддерживает некоторые функции HTTP/1.1, такие как Host:
заголовок, который необходим для доступа к любым виртуальным хостам).
Значительное количество серверов будет намеренно возвращать ответы HTTP/1.0, потому что некоторые (более старые) браузеры будут предоставлять серверу HTTP/1.0 более высокий предел соединения, чем предел 2 соединений, установленный для постоянных соединений HTTP / 1.1.
Но в целом, большинство реализаций "HTTP/1.0" на самом деле являются лишь слегка ограниченными версиями реализаций HTTP / 1.1, и многие реализации HTTP / 1.1 на самом деле не поддерживают некоторые функции этой версии (например, конвейерную обработку в частности).
Я использую его все время, когда подключаюсь к серверу, чтобы проверить подключение или выяснить, почему он не работает:
$ telnet 192.168.1.1 80
GET / HTTP/1.0\r\n
\r\n
...
(Потому что для выполнения запроса 1.0 не требуется никаких дополнительных заголовков).
Глядя на это сам для других целей:
"HTTP / 1.0 используется прокси-серверами, некоторыми мобильными клиентами и IE, когда он настроен на использование прокси-сервера. Таким образом, 1.0, по-видимому, по-прежнему составляет нетривиальный% трафика в сети в целом.... Да, есть много 1.0 клиентов все еще там."
Источник (июль 2009 года): http://groups.google.com/group/erlang-programming/msg/08f6b72d5156ef74
:-(
Обновление (март 2011 г.):
Если вы собираетесь создать клиент / сервер, заставьте клиента использовать HTTP/1.1 и заставьте сервер принимать версии 1.1 и 1.0. Занимаясь веб-разработкой, это PITA, чтобы клиенты пытались загрузить страницу без заголовка Host, потому что у меня нет возможности узнать, какой сайт я должен загружать:-S Так что лучше не создавать такой клиент;-)
HTTP/1.0 очень важен при написании базовых клиентов, которым не нужны накладные расходы на все 1.1, такие как конвейерная обработка и другие сложные вещи, требуемые 1.1. Разместите запрос, получите ответ и отключите его очень легко. Это может быть полезно при написании тестовых случаев для вашего сервера, которые просто хотят проверить функциональность приложения, а НЕ реализацию протокола HTTP.
Есть много мобильных браузеров и приложений, которые используют 1.0, потому что у них нет места или нет необходимости в более сложных реализациях 1.1, а проблемы с задержкой при подключениях не-3G на не-смартфонах полностью сводят на нет все преимущества функций 1.1.
Есть также много прокси, которые ухудшают все до 1.0 независимо от того, что запрашивает клиент, а затем возникают проблемы с IE.
Таким образом, короткий ответ для HTTP-сервера общего назначения 1.0 очень важен.
IME прошло очень много времени с тех пор, как я видел настоящий запрос HTTP/1.0. (включая мобильные устройства fuzzylollipop).
Я говорю истинный запрос, так как MSIE по-прежнему (делает вид), чтобы перейти на HTTP/1.0 по умолчанию (если вы не сиг в конфигурации), когда вы подключаетесь через прокси (все исходящие запросы помечены как HTTP/1.0) - однако он по-прежнему включает Специфичные для HTTP/1.1 заголовки запросов и учитывают все ответы HTTP/1.1.
Любопытно, что IIS в зеркальном отображении с радостью игнорирует версию HTTP (хотя я не слишком много экспериментировал с этим, чтобы увидеть, делает ли это только для пользовательских агентов MSIE).
Таким образом, по любопытному совпадению MSIE и IIS намного лучше работают с прокси-серверами, чем со стандартными инструментами.
C.