Welcome! Log In Create A New Profile

Advanced

Re: Вопросы по http2 push

February 27, 2018 09:34AM
On Tue, Feb 27, 2018 at 10:17:07AM +0300, Nick Lavlinsky - Method Lab wrote:
> Здравствуйте!
>
> Начал тестировать http2_push сразу после релиза. Появилось 2 вопроса.
>
> 1. Есть ли возможность пушить ресурсы до ответа на основной запрос (так
> делает у себя Fastly, называя async push)? Таким образом можно получить
> экономию не только в 1RTT, но и за счет серверного времени на генерацию
> html (https://www.fastly.com/blog/optimizing-http2-server-push-fastly).

Нет, сейчас такой возможности нет и вряд ли она появится.

Сейчас nginx дожидается заголовка ответа на основной запрос,
прежде чем отправить PUSH_PROMISE'ы и собственно начать пушить
ответы. Причин тому несколько. Во-первых, это единственный
способ при конвертации Link preload'ов в push'и. Во-вторых,
если так не делать, и ответа на основной запрос нет (например,
бэкенд неживой), то непонятно, на каком основании вообще мы
должны делать push.

> 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.

При этом внизу выдаётся warning, что некоторые ресурсы не используются.

> В FF показываются только те
> ресурсы, которые используются на странице.
>
> При анализе загрузки ресурсов через nghttp -ans или Webpagetest всегда
> (и в http2_push, и в http2_push_preload) видны все push запросы.
>
> Не знаю, бага это или фича, может будет полезно.

В chrome://net-internals/#http2 видно, что они push'атся. Почему
так по-разному показывает DevTools, я лично не знаю. Но это точно
не вопрос к nginx'у.
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Вопросы по http2 push

Nick Lavlinsky - Method Lab February 27, 2018 02:18AM

Re: Вопросы по http2 push

ru@nginx.com February 27, 2018 09:34AM

Re: Вопросы по http2 push

Nick Lavlinsky - Method Lab February 28, 2018 01:42AM

Re: Вопросы по http2 push

S.A.N February 27, 2018 02:11PM

Re: Вопросы по http2 push

Nick Lavlinsky - Method Lab February 28, 2018 01:42AM

Re: Вопросы по http2 push

S.A.N February 28, 2018 03:40AM

Re: Вопросы по http2 push

Nick Lavlinsky - Method Lab February 28, 2018 04:46AM

Re: Вопросы по http2 push

S.A.N February 28, 2018 04:59AM

Re: Вопросы по http2 push

Nick Lavlinsky - Method Lab February 28, 2018 08:18AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 180
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready