HTTP 1.0 по сравнению с 1,1

247
задан numaroth 7 February 2017 в 07:31
поделиться

4 ответа

поддержка Прокси и поле Host:

HTTP 1.1 имеет необходимый заголовок Хоста спецификацией.

HTTP 1.0 официально не требует заголовка Хоста, но не повреждает добавлять один, и много приложений (прокси) ожидают видеть заголовок Хоста независимо от версии протокола.

Пример:

GET / HTTP/1.1
Host: www.blahblahblahblah.com

Этот заголовок полезен, потому что он позволяет Вам направлять сообщение через прокси-серверы, и также потому что Ваш веб-сервер может различать различные сайты на том же сервере.

, Таким образом, это означает, есть ли у Вас blahblahlbah.com и helohelohelo.com оба указывающий на тот же IP. Ваш веб-сервер может использовать поле Host для различения, которые располагают клиентскую машину, хочет.

Постоянные соединения:

HTTP 1.1 также позволяет Вам иметь постоянные соединения, что означает, что у Вас может быть больше чем один запрос/ответ на том же HTTP-соединении.

В HTTP 1.0 необходимо было открыть новое соединение для каждой пары запроса/ответа. И после каждого ответа было бы закрыто соединение. Этот вывод к некоторым большим проблемам эффективности из-за TCP Медленный Запуск .

метод ОПЦИЙ:

HTTP/1.1 представляет метод ОПЦИЙ. Клиент HTTP может использовать этот метод для определения способностей сервера HTTP. Это главным образом используется для Перекрестного Разделения ресурсов Источника в веб-приложениях.

Кэширование:

HTTP 1.0 имел поддержку кэширования через заголовок: If-Modified-Since.

HTTP 1.1 подробно останавливается на кэширующейся поддержке много при помощи чего-то позвонившего 'тег объекта'. Если 2 ресурса будут тем же, то у них будут те же теги объекта.

HTTP 1.1 также добавляет If-Unmodified-Since, Если-соответствие, условные заголовки If-None-Match.

существуют также дальнейшие дополнения, касающиеся кэширования как заголовок Управления Кэша.

100 состояний Continue:

существует новый код возврата в HTTP/1.1 100, Продолжаются. Это должно препятствовать тому, чтобы клиент отправил большой запрос, когда тот клиент даже не уверен, может ли сервер обработать запрос или разрешен обработать запрос. В этом случае клиент отправляет только заголовки, и сервер скажет, что клиент 100 Продолжает, продолжает тело.

Намного больше:

  • Дайджест-аутентификация и аутентификация прокси
  • Дополнительные новые коды статусов
  • Разделенная на блоки передача, кодирующая
  • заголовок Соединения
  • Расширенная поддержка сжатия
  • Очень намного больше.
344
ответ дан Koray Tugay 23 November 2019 в 03:02
поделиться

Для тривиальных приложений (например, эпизодически получение температурного значения от термометра веб-доступа) HTTP 1.0 хорошо и для клиента и для сервера. Можно записать базовому основанному на сокете клиенту HTTP 1.0 или серверу приблизительно в 20 строках кода.

Для более сложных сценариев HTTP 1.1 способ пойти. Ожидайте 3 к 5-кратному увеличению размера кода для контакта с запутанностью более сложного протокола HTTP 1.1. Сложность главным образом прибывает, потому что в HTTP 1.1 необходимо будет создать, проанализировать и ответить на различные заголовки. Можно экранировать приложение от этой сложности при наличии клиента, пользуются библиотекой HTTP, или сервер использует сервер веб-приложения.

8
ответ дан Diomidis Spinellis 23 November 2019 в 03:02
поделиться

Ключевая проблема совместимости является поддержкой постоянные соединения . Я недавно работал над сервером, который "поддерживал" HTTP/1.1, все же отказавший для закрытия соединения, когда клиент отправил запрос HTTP/1.0. При записи сервера, который поддерживает HTTP/1.1, быть уверенным, он также работает хорошо с HTTP/1.0-only клиентами.

7
ответ дан Troy J. Farrell 23 November 2019 в 03:02
поделиться

Одним из первых различий, которые я могу вспомнить из вершины головы, являются несколько доменов, работающих в том же сервере, частичном извлечении ресурса, это позволяет Вам получать и ускорять загрузку ресурса (это - то, что почти каждый акселератор загрузки делает).

, Если Вы хотите разработать приложение как веб-сайт или подобный, Вы не должны волноваться слишком много о различиях, но Вы должны знать различие между GET и POST глаголы, по крайней мере.

Теперь, если Вы хотите разработать браузер тогда да, необходимо будет знать полный протокол, а также при попытке разработать сервер HTTP.

, Если бы Вы только интересуетесь знанием протокола HTTP, я рекомендовал бы Вам запускающийся с HTTP/1.1 вместо 1,0.

5
ответ дан Leandro López 23 November 2019 в 03:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: