HTTP 2: запрос диапазона сеанса - PullRequest
0 голосов
/ 19 сентября 2018

Извините за то, что я думаю, может быть глупым вопросом, но:

Я понимаю, что HTTP 2 заключается в том, что вы создаете соединение, устанавливаете TLS, если хотите, затем обновляетесь до 2 и делаете много малозапросы на это одно соединение:.получить увеличение скорости, потому что вы не восстанавливаете соединения и TLS.

Если это так, то когда речь идет о сеансах - каждый запрос к соединению рассматривается как уникальный запрос и:.есть файлы cookie и заголовки или все они рассматриваются как подзапросы исходного запроса?

Это влияет на прокси, можете ли вы объединять запросы клиентов в один поток или нет?

1 Ответ

0 голосов
/ 19 сентября 2018

Я понимаю, что HTTP 2 заключается в том, что вы создаете соединение, устанавливаете TLS, если хотите, затем обновляетесь до 2

Не совсем.Если вы используете TLS, то использование HTTP / 2 будет согласовано как часть согласования TLS.Если вы не используете TLS, вы можете выполнить обновление, но браузеры поддерживают только HTTP / 2 через HTTPS, так что это большинство случаев использования.

Когда речь идет о сеансах - каждый запрос по соединению обрабатываетсякак уникальный запрос и:.имеет файлы cookie и заголовки, или все они рассматриваются как подзапросы исходного запроса?

Каждый запрос является частью того, что называется потоком в HTTP / 2.Это уникальный запрос со своими собственными файлами cookie и заголовками, который не связан с предыдущими запросами (хотя некоторые примечания см. В примечании ниже).Концептуально это на самом деле ничем не отличается от того факта, что HTTP / 1.1 позволяет отправлять несколько уникальных, не связанных запросов по одному соединению - но в отличие от HTTP / 1.1 несколько запросов все могут передаваться одновременно в HTTP / 2 благодаря мультиплексирование .

Эта диаграмма может помочь объяснить это: https://freecontent.manning.com/mental-model-graphic-how-is-http-1-1-different-from-http-2/

Это влияет на прокси, можете ли вы объединять запросы от клиентов в один поток или нет?

Я не уверен, что вы имеете в виду под этим?


Примечание. Хотя запросы HTTP / 2 не зависят друг от друга, а HTTP все еще не имеет состояния на более высоком уровнеЕсть несколько мест, когда вы переходите на более низкий уровень, где может быть оспорена строгая формулировка, и где технически существует некоторая связь между запросами.Например:

  • HTTP / 2 фактически использует сжатие заголовка HPACK для сжатия заголовков HTTP, поэтому, если один и тот же заголовок отправляется дважды для разных запросов (например, для одного и того же файла cookie), то второй вызов будет включать ссылку наранее полученный заголовок, а не повторять данные.
  • Каждый запрос имеет уникальный идентификатор потока, который является возрастающим целым числом, которое является нечетным (инициируется клиентом) или четным (инициируется сервером), поэтому, конечно, идентификаторы потокадолжен управляться реализацией HTTP / 2, поэтому можно спорить.
  • HTTP / 2 push-ресурсы выдвигаются в ответ на предыдущий идентификатор потока запросов.

Но на самом деле это всего лишь соединениевопросы уровня и эффективности.Для пользователя HTTP / 2 (например, веб-разработчика) каждый запрос HTTP / 2 является настолько же независимым, как и в HTTP / 1.1, а HTTP по-прежнему не имеет состояния.

...