Подлежит ли URL сжатию заголовка HTTP / 2? - PullRequest
0 голосов
/ 25 октября 2018

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

Myвопрос в том, относится ли это и к URL-адресу?

Скажем, вы повторяли запросы на один и тот же URL-адрес (возможно, содержащий длинные идентификаторы и / или токены), будет ли в этом случае сохранена пропускная способность?

1 Ответ

0 голосов
/ 26 октября 2018

Существуют различные опции, которые клиент может использовать для отправки заголовков в HTTP / 2, как определено в спецификации HPACK .Они в основном говорят, использовать ли ранее упомянутый заголовок, сохранять ли заголовок для последующей ссылки, никогда не сохранять заголовок для повторного использования ... и т. Д.Клиент решает, какой из них использовать для отправляемых им заголовков.

В HTTP / 2 URL-адрес отправляется в псевдо-заголовке :path, поэтому в отличие от HTTP / 1.1 он такой же, как и любой другой заголовок HTTPтак можно сжать.Однако, как правило, URL не повторяется часто, поэтому он будет отправлен как Literal Header Field without Indexing, что означает, что это однократный заголовок, поэтому не храните его для повторного использования.Конечно, так как это HTTP-заголовок, очень похожий на любой другой, ничто не мешает HTTP / 2-клиенту отправлять это как индексированный тип, но веб-браузеры вряд ли смогут это сделать, так что это, вероятно, действительно вариант для пользовательских клиентов.

Кстати, если вы хотите узнать больше об этом и найти спецификацию немного трудной для понимания, тогда моя книга HTTP / 2 в действии более подробно рассматривается в главе8.

...