<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">вт, 28 апр. 2020 г. в 01:29, gz <<a href="mailto:nginx-forum@forum.nginx.org">nginx-forum@forum.nginx.org</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> > Maxim Dounin Wrote:<br>
> > -------------------------------------------------------<br>
> > > > В HTML страницы бэкендом выдаются элементы <link rel="preload"><br>
> с<br>
> > > указанием<br>
> > > > на ресурсы для предзагрузки.<br>
> > > > Хотелось бы перейти с предзагрузки на http2_push указанных<br>
> ресурсов.<br>
> > > <br>
> > > А вы пробовали тестировать, что вы получите на выходе?<br>
> > <br>
> > Практически не проверял, но здравый смысл подсказывает, что даже в<br>
> рамках<br>
> > HTTP2 проталкивание ресурсов в первом запросе позволит сэкономить<br>
> минимум<br>
> > один запрос на получение ресурсов, объявленных в <link<br>
> rel="preload">.<br>
> <br>
> Здравый смысл тут подсказывает неправильно. Поскольку сервер не <br>
> знает, какие ресурсы уже есть у клиента, а каких ещё нет, он шлёт <br>
> push'ы всегда, и тем самым расходует как канал, так и лишние <br>
> ресурсы на сервере. Соответственно результат будет зависеть от <br>
> того, насколько польза от push'а (сэкономленный 1 rtt при запросе <br>
> дополнительных ресурсов у тех клиентов, у которых этих ресурсов <br>
> нет) больше или меньше тех проблем, которые push добавляет всем <br>
> остальным клиентам.<br>
<br>
Востребованные ресурсы из push-кэша переходят в основной и будут<br>
использованы для следующих страниц.<br>
Клиенты умеют отказываться от проталкиваемых ресурсов, уже имеющихся в<br>
кэше.<br>
В крайнем случае несложно пометить клиента стандартным способом через<br>
cookie.<br>
<br>
> > > Имеющиеся исследования про эффективность HTTP/2 push позволяют<br>
> предолжить,<br>
> > <br>
> > > что результат скорее всего будет хуже, чем то, что у вас есть <br>
> > > сейчас.<br>
> > <br>
> > Я встречал обратные исследования.<br>
> > <a href="https://dexecure.com/blog/http2-push-vs-http-preload/" rel="noreferrer" target="_blank">https://dexecure.com/blog/http2-push-vs-http-preload/</a><br>
> <br>
> По ссылке нет исследований, там только общие соображения.  <br>
> Исследования выглядят как-то так:<br>
> <br>
><br>
<a href="https://github.com/httpwg/wg-materials/blob/gh-pages/ietf102/chrome_push.pdf" rel="noreferrer" target="_blank">https://github.com/httpwg/wg-materials/blob/gh-pages/ietf102/chrome_push.pdf</a><br>
<br>
Не совсем понимаю какие выводы делают авторы.<br>
<br>
Предлагают работать над приоритезацией (которая и так корректная, и<br>
регулируется preload'ом), использовать экспериментальный QUIC, поддержики<br>
которого толком нет.<br>
<br>
> > Плюс у push шире поддерживается.<br>
> <br>
> Я бы не был столь категоричен. <br>
<br>
Нет никакой категоричности:<br>
<a href="https://caniuse.com/#search=rel%20preload" rel="noreferrer" target="_blank">https://caniuse.com/#search=rel%20preload</a> — 84%<br>
<a href="https://caniuse.com/#feat=http2" rel="noreferrer" target="_blank">https://caniuse.com/#feat=http2</a> — 94%<br>
<br>
Не совсем корректное сравнение точно preload vs push, тем не менее.<br>
<br>
Я прекрасно понимаю, что push — не панацея, и хотел попробовать на практике<br>
проталкивание критических ресурсов, которые в любом случае приоритетны и<br>
будут загружены для отрисовки.<br></blockquote><div><br></div><div>я бы с интересом посмотрел на аналитику, которая привела к такому развитию событий.<br></div><div>какие метрики вы с приложения снимаете, методика, всё вот это.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Posted at Nginx Forum: <a href="https://forum.nginx.org/read.php?21,287846,287852#msg-287852" rel="noreferrer" target="_blank">https://forum.nginx.org/read.php?21,287846,287852#msg-287852</a><br>
<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></blockquote></div></div>