Может ли клиент HTTP / 2 выбрать, какие ресурсы получать через сервер Pu sh? - PullRequest
0 голосов
/ 07 мая 2020

У меня есть сайт c. Чтобы ускорить загрузку сайта, я хочу передать sh CSS клиенту, используя HTTP / 2 Server Pu sh. Однако меня также беспокоит использование полосы пропускания на мобильных клиентах.

Если я укажу ресурс, который нужно отправить клиенту (например, используя http2_push <some file> в nginx), и у клиента уже есть этот ресурс в своем кеш, может ли клиент запросить, чтобы ресурс не помещался? Или сервер всегда pu sh ресурс?

Я читал RF C 7540, se c. 8.2 - Сервер HTTP / 2 Pu sh, но я обнаружил только, что клиент может отправить запрос RST_STREAM для остановки сервера pu sh. Но есть ли способ, которым клиент может выбрать, какие ресурсы он будет выталкивать?

1 Ответ

1 голос
/ 07 мая 2020

Вы можете установить повар ie, и сервер может использовать его, чтобы решить, использовать sh или нет. У меня есть реализация Apache этого здесь: https://www.tunetheweb.com/performance/http2/http2-push/

Это не идеально, поскольку повар ie может быть очищен независимо от кеша, но лучшее, что мы можем сделать сейчас .

Дайджесты кэша был предложен как решение этой проблемы, но работа над этим была остановлена ​​ из-за отсутствия интереса - в основном из-за опасений по поводу конфиденциальности.

HTTP / 2 Pu sh не оправдал ожиданий и может привести к снижению производительности, а не к улучшениям. Предварительная загрузка с помощью подсказок ресурсов более чистая и менее рискованная. Его также можно использовать с кодом состояния 103 Early Hints - хотя поддержка и этого невелика - см., Например, Chrome проблему .

...