early_hints

Директива `early_hints` позволяет NGINX отправлять HTTP 103 Early Hints ответы до окончательного ответа. — NGINX HTTP Core

early_hints
httpserverlocation
Синтаксисearly_hints ...;
По умолчаниюnone
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументы1+

Описание

Директива `early_hints` в NGINX разработана для HTTP/3 и может отправлять предварительные HTTP 103 ответы, позволяющие серверу предоставлять клиенту подсказки до окончательного ответа. Это особенно полезно для предварительной загрузки ресурсов — указаний таких ресурсов, как таблицы стилей или скрипты, которые клиент может захотеть загрузить в ожидании рендеринга страницы. Директиву можно настроить глобально в блоке `http`, либо конкретно для контекстов `server` или `location`; она требует по крайней мере одного аргумента, который обычно включает заголовок 'link', указывающий ресурсы для предзагрузки. При использовании `early_hints` можно значительно ускорить загрузку веб-страниц за счёт предварительного информирования браузера о необходимых ресурсах. После настройки этой директивы ссылки, указанные в ответе, позволят браузерам начать загрузку этих ресурсов, пока они всё ещё ожидают окончательного ответа, что сокращает время, блокирующее отрисовку. Однако для эффективного использования этой функции приложение также должно быть спроектировано с учётом обработки таких ранних ответов, и следует проверить поддержку в браузерах, поскольку не все браузеры одинаково обрабатывают early hints.

Пример конфига

http {
    server {
        location / {
            early_hints 'Link: ; rel=preload';
        }
    }
}

Не все клиенты и браузеры корректно поддерживают ответы HTTP 103, что может приводить к непоследовательному поведению.

Ресурсы, на которые указывают подсказки, могут не загружаться, если в окончательном ответе указаны другие директивы кэширования или ограничения доступа.