Вопросы по http2 push

Nick Lavlinsky - Method Lab nick на methodlab.info
Вт Фев 27 07:17:07 UTC 2018


Здравствуйте!

Начал тестировать http2_push сразу после релиза. Появилось 2 вопроса.

1. Есть ли возможность пушить ресурсы до ответа на основной запрос (так 
делает у себя Fastly, называя async push)? Таким образом можно получить 
экономию не только в 1RTT, но и за счет серверного времени на генерацию 
html (https://www.fastly.com/blog/optimizing-http2-server-push-fastly).

2. При использовании директивы http2_push в конфиге сайта браузеры 
(Chrome Stable и 66, FF 58.0.2) показывают, что только 1 ресурс был 
запушен, хотя стоят сразу несколько (смотрю в DevTools с отключенным 
кэшем). Например:

     location / {
         proxy_pass http://127.0.0.1:9090/pcgi/index.pl?$uri?&$args;
         proxy_redirect     off;

         proxy_set_header   Host             $host;
         proxy_set_header   X-Real-IP        $remote_addr;
         proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;

     http2_push /css/colorbox.css;
     http2_push /img/design/logo.png;
     http2_push /js/core.js;
     http2_push /images/border.png;
     http2_push /img/no_foto.png;
     http2_push /js/jq/jquery-2.1.3.min.js;

     }

В браузерах отображается в виде push только /img/design/logo.png, так 
как этот ресурс используется на странице (остальные - нет). Поведение 
одинаково и в Chrome и в FF.

Если делать push через заголовок Link (http2_push_preload on;), то в 
Chrome все ресурсы показываются в DevTools. В FF показываются только те 
ресурсы, которые используются на странице.

При анализе загрузки ресурсов через nghttp -ans или Webpagetest всегда 
(и в http2_push, и в http2_push_preload) видны все push запросы.

Не знаю, бага это или фича, может будет полезно.

-- 

С уважением,
Лавлинский Николай,
Метод Лаб: делаем правильно!
www.methodlab.ru
+7 (499) 519-00-12



Подробная информация о списке рассылки nginx-ru