Я читаю Курозе «Компьютерные сети - подход сверху вниз», и дошли до той части, где объясняются различия между HTTP с непостоянными соединениями и с постоянными соединениями.
Прежде чем углубиться в детали, говорят, что
Хотя HTTP использует постоянные соединения в своем режиме по умолчанию, HTTP-клиенты и серверы могут быть настроены на использование вместо них непостоянных соединений.
Насколько я понимаю, используются постоянные соединения. Но тогда в непостоянной части они говорят, что
В своих режимах по умолчанию большинство браузеров открывают от 5 до 10 параллельных TCP-соединений, и каждое из этих соединений обрабатывает одну транзакцию запрос-ответ.
С другой стороны, в настойчивой части говорят:
Обычно HTTP-сервер закрывает соединение, если оно не используется в течение определенного времени (настраиваемый интервал тайм-аута). Когда сервер получает последовательные запросы, он отправляет объекты один за другим. В режиме HTTP по умолчанию используются постоянные соединения с конвейерной обработкой. Совсем недавно HTTP / 2 [RFC 7540] основывается на HTTP 1.1, позволяя чередовать несколько запросов и ответов в одном и том же соединении, а также механизм для приоритизации запросов и ответов HTTP в этом соединении.
Я смущен. Единственный способ увидеть, как это работает: хотя браузеры могут открывать несколько соединений и, таким образом, получать данные параллельно, каждое из этих соединений является постоянным. Есть ли в этом смысл? Или я что-то упускаю / неправильно понимаю?
Заранее спасибо!
Страницы Mozilla по протоколу HTTP довольно точны. Заголовок подключения объясняет, как обрабатываются соединения.
В HTTP / 1.0 соединения по умолчанию закрываются после отправки ответа.
В HTTP / 1.1 соединения по умолчанию постоянны.
Браузеры открывали несколько соединений с HTTP / 1.1, потому что в противном случае сервер мог бы отправлять только один файл за раз, что вызывает задержки при отображении всей страницы. Недостатком этого подхода является дополнительное установление связи TCP и механизм медленного запуска, ограничивающий пропускную способность.
HTTP / 2 улучшил это, введя мультиплексное соединение, которое устраняет дополнительные квитирования TCP и влияние медленного запуска на пропускную способность.
Постоянство соединения и множественные запросы не зависят друг от друга.
Браузеры также могут действовать по-другому.