Re: http2 push — не планируется ли поддержка <link rel="preload"> по аналогии с заголовком Link?
gz
nginx-forum на forum.nginx.org
Пн Апр 27 20:29:44 UTC 2020
> > Maxim Dounin Wrote:
> > -------------------------------------------------------
> > > > В HTML страницы бэкендом выдаются элементы <link rel="preload">
> с
> > > указанием
> > > > на ресурсы для предзагрузки.
> > > > Хотелось бы перейти с предзагрузки на http2_push указанных
> ресурсов.
> > >
> > > А вы пробовали тестировать, что вы получите на выходе?
> >
> > Практически не проверял, но здравый смысл подсказывает, что даже в
> рамках
> > HTTP2 проталкивание ресурсов в первом запросе позволит сэкономить
> минимум
> > один запрос на получение ресурсов, объявленных в <link
> rel="preload">.
>
> Здравый смысл тут подсказывает неправильно. Поскольку сервер не
> знает, какие ресурсы уже есть у клиента, а каких ещё нет, он шлёт
> push'ы всегда, и тем самым расходует как канал, так и лишние
> ресурсы на сервере. Соответственно результат будет зависеть от
> того, насколько польза от push'а (сэкономленный 1 rtt при запросе
> дополнительных ресурсов у тех клиентов, у которых этих ресурсов
> нет) больше или меньше тех проблем, которые push добавляет всем
> остальным клиентам.
Востребованные ресурсы из push-кэша переходят в основной и будут
использованы для следующих страниц.
Клиенты умеют отказываться от проталкиваемых ресурсов, уже имеющихся в
кэше.
В крайнем случае несложно пометить клиента стандартным способом через
cookie.
> > > Имеющиеся исследования про эффективность HTTP/2 push позволяют
> предолжить,
> >
> > > что результат скорее всего будет хуже, чем то, что у вас есть
> > > сейчас.
> >
> > Я встречал обратные исследования.
> > https://dexecure.com/blog/http2-push-vs-http-preload/
>
> По ссылке нет исследований, там только общие соображения.
> Исследования выглядят как-то так:
>
>
https://github.com/httpwg/wg-materials/blob/gh-pages/ietf102/chrome_push.pdf
Не совсем понимаю какие выводы делают авторы.
Предлагают работать над приоритезацией (которая и так корректная, и
регулируется preload'ом), использовать экспериментальный QUIC, поддержики
которого толком нет.
> > Плюс у push шире поддерживается.
>
> Я бы не был столь категоричен.
Нет никакой категоричности:
https://caniuse.com/#search=rel%20preload — 84%
https://caniuse.com/#feat=http2 — 94%
Не совсем корректное сравнение точно preload vs push, тем не менее.
Я прекрасно понимаю, что push — не панацея, и хотел попробовать на практике
проталкивание критических ресурсов, которые в любом случае приоритетны и
будут загружены для отрисовки.
Posted at Nginx Forum: https://forum.nginx.org/read.php?21,287846,287852#msg-287852
Подробная информация о списке рассылки nginx-ru