Re: http2 push — не планируется ли поддержка <link rel="preload"> по аналогии с заголовком Link?

gz nginx-forum на forum.nginx.org
Ср Апр 29 17:26:27 UTC 2020


> > Востребованные ресурсы из push-кэша переходят в основной и будут
> > использованы для следующих страниц.
> > Клиенты умеют отказываться от проталкиваемых ресурсов, уже имеющихся
> в
> > кэше.
> > В крайнем случае несложно пометить клиента стандартным способом
> через
> > cookie.
> 
> Проблема в том, что даже отказ от push-ресурсов - это нагрузка как 
> на сервер, так и на канал.  И статистика как бы говорит нам, что в 
> среднем эти накладные расходы - больше, чем польза.

Я таковой статистикой не располагаю.
Но предполагаю, что клиенту отказаться от push'а проще, чем сделать
дополнительный запрос к ресурсу.

> Что будет конкретно в вашем случае - зависит, безусловно, от 
> конкретной нагрузки и от того, насколько "в крайнем случае 
> несложно" вам будет избежать лишних push'ей.  Но, повторюсь, в 
> среднем - будет хуже, потому что "в крайнем случае" никто не 
> заморачивается.  Именно поэтому я начал с вопроса пробовали ли вы 
> тестировать, что получится.  Подозреваю, что от банального 
> перекладывания существующих <link rel="preload"> в push'ы - 
> станет только хуже.

Да, я понял Вашу точку зрения.
Да, узкого эксперимента я не проводил.

>
https://github.com/httpwg/wg-materials/blob/gh-pages/ietf102/chrome_push.pdf
> > 
> > Не совсем понимаю какие выводы делают авторы.
> > 
> > Предлагают работать над приоритезацией (которая и так корректная, и
> > регулируется preload'ом), использовать экспериментальный QUIC,
> поддержики
> > которого толком нет.
> 
> Авторы ясно и однозначно показывают, что server push - в среднем 
> вредит, и в большинстве случаев лишь способ выстрелить себе в 
> ногу.  И предлагают работать над другими технологиями, 
> потенциально более полезными.
> 
> Тут важно понимать, что речь идёт про взгляд разработчиков 
> браузера, и рассказывалось это всё на HTTP working group, то есть 
> в рамках встречи людей, занимающихся разработкой протокола.

Из Ваших соображений и трактовке вышеприведённого исследования складывается
впечатление, что даже разработчики протокола не донца понимают зачем push
нужен.
При том, что не только они описали его в протоколе, но и сторонние
разработчики реализовали поддержку push'а клиентах и нескольких серверах.

> (Ну и да, про приоритезацию - смешно.  Нет, это не про preload, 
> это, как я понимаю, про приоритеты в рамках HTTP/2.  Там самолёт с 
> бассейном и джакузи запроектирован в рамках стандарта, корректности 
> ждать не приходится.)

Я о текущей примитивной приоретизации.
Сомневаюсь, что когда-нибудь появятся инстументы точного управления ею,
браузеры всё равно будут вынуждены использовать указания как рекомендацию.

> > Я прекрасно понимаю, что push — не панацея, и хотел попробовать на
> практике
> > проталкивание критических ресурсов, которые в любом случае
> приоритетны и
> > будут загружены для отрисовки.
> 
> Именно с этого я и начал: попробуйте на практике на отдельных 
> страницах, без попыток вытаскивать версии ресурсов через SSI и вот 
> этого всего.  Получите статистику, сравните.
> 
> Сейчас же вы пришли и убеждаете разработчиков, что вам надо, 
> потому что оно точно будет лучше, но тестировать вы ничего не 
> тестировали и не хотите. 

Где именно и кого я в чём-то убеждал и убеждал в том, что мне нужно?
Я задал вопрос о планах.

А учитывая, что использовать саму директиву http2_push затруднительно — один
ресурс за раз, невозможность использования в if — и предвидя рекомендацию
использовать http2_push_preload, я рассказал о том, в какую сторону пошёл и
что уже попробовал сделать своими силами, и о том, какие возможности могли
бы помочь в решении задачи.

> Так это не работает.  Придёте со 
> стастикой, явно показывающей плюсы - мы задумаемся над тем, как 
> облегчить вам жизнь в конфигурации с SSI.  Пока же из статистике 
> есть вот только ссылка выше, из которой явно следует, что делать 
> что-либо для лучше поддержки HTTP/2 push - в среднем бессмысленно.

То, о чём я рассказываю и есть эксперимент.
Проще внедрить это на dev- или даже production-версии сайта, чем готовить
узкие эксперименты из двух страниц.
В случае pdocution'а можно прогнозировать значимое изменение в статистике
загрузки страниц, в том числе по данным браузеров — в той же Метрике, Google
Console или PageSpeed Insights.

Простой эксперимент, конечно, имеет право на жизнь, но это пара страниц и
несколько доступных браузеров и инструментов.

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,287846,287886#msg-287886



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