Welcome! Log In Create A New Profile

Advanced

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

gz
April 27, 2020 09:33AM
В HTML страницы бэкендом выдаются элементы <link rel="preload"> с указанием на ресурсы для предзагрузки.
Хотелось бы перейти с предзагрузки на http2_push указанных ресурсов.

Казалось бы, нет проблемы перейти на заголовок Link, который модулем ngx_http_v2_module при http2_push_preload on будет преобразован в push'и.
Однако, в путях к ресурсам используются SSI-вставки с текущими версиями, а HTML вместе в SSI-директивами хранится в кэше.
Условно:
<html>
<head>
<link rel="preload" href="/css/style.css?<!--#echo var="style_css_version" default="1"-->" as="style"/>

<link rel="stylesheet" href="/css/style.css?<!--#echo var="style_css_version" default="1"-->"/>

</head>
<body>

</body>
</html>

А после работы SSI получаем нужный результат:
<html>
<head>
<link rel="preload" href="/css/style.css?123456789" as="style"/>

<link rel="stylesheet" href="/css/style.css?123456789"/>

</head>
<body>

</body>
</html>

Выходит, поможет либо поддержка SSI в заголовках ответа — чего nginx не умеет, либо поддержка модулем ngx_http_v2_module преобразования <link rel="preload"> в http2_push.

Посмотрел, было, в строну njs в надежде что смогу процессить тело ответа после SSI, выкусывать оттуда <link rel="preload">, преобразовывать их в Link-заголовки, которые затем будут преобразованы в ngx_http_v2_module в push'и, но в js_content тело ответа оказалось пустым, а js_filter работает на уровне stream'а.
Так же попробовал использовать js_set для формирования заголовка Link на основе <link rel="preload"> в теле, но в этом случае в теле <link rel="preload"> в теле сохранятся и неясно как поведёт себя браузер при получении и preload-инструкций и http2_push'а.

Нет ли в планах поддерживать преобразования <link rel="preload"> в http2_push?
Subject Author Posted

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

gz April 27, 2020 09:33AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 234
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