поддержка Прокси и поле 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 Продолжает, продолжает тело.
Намного больше:
Для тривиальных приложений (например, эпизодически получение температурного значения от термометра веб-доступа) HTTP 1.0 хорошо и для клиента и для сервера. Можно записать базовому основанному на сокете клиенту HTTP 1.0 или серверу приблизительно в 20 строках кода.
Для более сложных сценариев HTTP 1.1 способ пойти. Ожидайте 3 к 5-кратному увеличению размера кода для контакта с запутанностью более сложного протокола HTTP 1.1. Сложность главным образом прибывает, потому что в HTTP 1.1 необходимо будет создать, проанализировать и ответить на различные заголовки. Можно экранировать приложение от этой сложности при наличии клиента, пользуются библиотекой HTTP, или сервер использует сервер веб-приложения.
Ключевая проблема совместимости является поддержкой постоянные соединения . Я недавно работал над сервером, который "поддерживал" HTTP/1.1, все же отказавший для закрытия соединения, когда клиент отправил запрос HTTP/1.0. При записи сервера, который поддерживает HTTP/1.1, быть уверенным, он также работает хорошо с HTTP/1.0-only клиентами.
Одним из первых различий, которые я могу вспомнить из вершины головы, являются несколько доменов, работающих в том же сервере, частичном извлечении ресурса, это позволяет Вам получать и ускорять загрузку ресурса (это - то, что почти каждый акселератор загрузки делает).
, Если Вы хотите разработать приложение как веб-сайт или подобный, Вы не должны волноваться слишком много о различиях, но Вы должны знать различие между GET
и POST
глаголы, по крайней мере.
Теперь, если Вы хотите разработать браузер тогда да, необходимо будет знать полный протокол, а также при попытке разработать сервер HTTP.
, Если бы Вы только интересуетесь знанием протокола HTTP, я рекомендовал бы Вам запускающийся с HTTP/1.1 вместо 1,0.