2015-10-13 2 views
2

от HTTP/2 protocolЧто отличается от http2-настройки и подключения предисловия

Содержание Настройки http2 поле заголовка является полезной нагрузки SETTINGS кадра (раздел 6,5)

и

После получения ответа 101 клиент ДОЛЖЕН отправить предисловие соединения (раздел 3.5), которое включает в себя кадр SETTINGS

Мой вопрос: почему клиент отправляет кадры SETTINGS дважды на сервер? Благодарю.

ответ

0

HTTP/2 уделяет большое внимание обмену НАСТРОЙКАМИ перед чем-либо еще, поэтому у меня создается впечатление, что HTTP2-Settings предназначены для информирования сервера о состоянии клиента до того, как сервер даже согласится переключиться на HTTP/2.

Второй кадр SETTINGS, вероятно, относится к однородности, так что после завершения обновления с HTTP/1.1 существует единый сеанс HTTP/2, начинающийся с SETTINGS, тот же, что был бы над TLS + ALPN или через простой HTTP/2 с предыдущими знаниями. Спецификация не говорит, какие настройки должны идти в любом из фреймов, AFAICT, поэтому один из них может быть пустым (что фактически указано в спецификации, раздел 3.5).

Эта избыточность - небольшая плата за оплату: 9 байтов на соединение, по сравнению с осложнениями, которые она перенесла бы, чтобы иметь несколько разные реализации HTTP/2 для случаев, когда есть обновление от HTTP/1.1 по сравнению с случаями когда нет.

Обратите внимание, что, хотя некоторые инструменты фактически будут использовать HTTP/2 через простые соединения, действительно интересные случаи, то есть браузеры, будут всегда использовать TLS + ALPN.

Смежные вопросы