Spec-Zone.ru › HTTP

Заголовки: Sec-Purpose

Заголовок Sec-Purpose

Ограниченная доступность

Эта функция не входит в Baseline, поскольку не работает в некоторых наиболее широко используемых браузерах.

Хотите, чтобы эта функция поддерживалась шире? Расскажите нам почему.

  • Подробнее
  • Полная таблица совместимости
>

HTTP-заголовок запроса метаданных Fetch Sec-Purpose указывает цель, для которой будет использоваться запрошенный ресурс, если эта цель отличается от немедленного использования пользовательским агентом.

В настоящее время определена только одна цель — prefetch. Она указывает, что ресурс запрашивается в ожидании того, что он понадобится странице, на которую, вероятно, перейдут в ближайшем будущем, например странице из результатов поиска или странице, ссылка на которую находится под указателем пользователя. Сервер может использовать эту информацию, чтобы изменить срок действия кеша для запроса, запретить запрос или, возможно, учитывать его иначе при подсчете посещений страниц.

Заголовок отправляется при загрузке страницы, содержащей элемент <link> с атрибутом rel="prefetch". Обратите внимание: если этот заголовок задан, заголовок Sec-Fetch-Dest в запросе должен иметь значение empty (любое значение атрибута <link> as игнорируется), а значение заголовка Accept должно совпадать со значением, используемым для обычных запросов навигации.

Тип заголовка Заголовок запроса метаданных Fetch
Запрещенный заголовок запроса Да (префикс Sec-)
Заголовок запроса из списка безопасных для CORS Нет

Синтаксис

Sec-Purpose: prefetch

Директивы

Допустимые токены:

prefetch

Цель — предварительно загрузить ресурс, который может понадобиться при вероятном переходе в будущем.

Примеры

>

Запрос предварительной загрузки

Рассмотрим случай, когда браузер загружает файл с элементом <link>, у которого есть атрибут rel="prefetch" и атрибут href, содержащий адрес файла изображения. В результате fetch() должен быть отправлен HTTP-запрос, в котором заданы Sec-Purpose: prefetch, Sec-Fetch-Dest: empty и значение Accept, совпадающее со значением, которое браузер использует для навигации по страницам.

Пример такого заголовка (в Firefox) приведен ниже:

GET /images/some_image.png HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Sec-Purpose: prefetch
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
Pragma: no-cache
Cache-Control: no-cache

Примечание: На момент написания этого текста Firefox ошибочно задает заголовок Accept как Accept: */* для предварительной загрузки. Пример изменен, чтобы показать, каким должно быть значение Accept. За ходом исправления этой проблемы можно следить в ошибке Firefox 1836334.

Спецификации

Спецификация
Fetch>
# sec-purpose-header>
Prefetch>
# sec-purpose-header>

Совместимость с браузерами

Компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari на iOS Samsung Internet WebView для Android WebView на iOS
Sec-Purpose 110 110 115 96 Нет 110 115 Нет Нет 21.0 110 Нет
prefetch
НетНе поддерживает Sec-Purpose для <link rel="prefetch">. В Chrome для указания того, что запрос link является запросом предварительной загрузки, используется устаревший заголовок Purpose: prefetch. См. ошибку 40236973.
НетНе поддерживает Sec-Purpose для <link rel="prefetch">. В Edge для указания того, что запрос link является запросом предварительной загрузки, используется устаревший заголовок Purpose: prefetch. См. ошибку 40236973.
115["Sec-Purpose: prefetch заменяет нестандартный заголовок X-moz: prefetch, который использовался для обозначения запроса предварительной загрузки link в предыдущих версиях.", "Запросы предварительной загрузки также должны содержать строку заголовка Accept, используемую для навигации, но вместо нее отправляется Accept: */*."]
НетНе поддерживает Sec-Purpose для <link rel="prefetch">. В Opera для указания того, что запрос link является запросом предварительной загрузки, используется устаревший заголовок Purpose: prefetch. См. ошибку 40236973.
Нет
НетНе поддерживает Sec-Purpose для <link rel="prefetch">. В Chrome для Android для указания того, что запрос link является запросом предварительной загрузки, используется устаревший заголовок Purpose: prefetch. См. ошибку 40236973.
115["Sec-Purpose: prefetch заменяет нестандартный заголовок X-moz: prefetch, который использовался для обозначения запроса предварительной загрузки link в предыдущих версиях.", "Запросы предварительной загрузки также должны содержать строку заголовка Accept, используемую для навигации, но вместо нее отправляется Accept: */*."]
Нет Нет
НетНе поддерживает Sec-Purpose для <link rel="prefetch">. В Samsung Internet для указания того, что запрос link является запросом предварительной загрузки, используется устаревший заголовок Purpose: prefetch. См. ошибку 40236973.
НетНе поддерживает Sec-Purpose для <link rel="prefetch">. В WebView для Android для указания того, что запрос link является запросом предварительной загрузки, используется устаревший заголовок Purpose: prefetch. См. ошибку 40236973.
Нет
speculationrules 110 110 Нет 96 26.2 110 Нет Нет 26.2 21.0 110 Нет

См. также

  • Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site, Sec-Fetch-User — заголовки запроса метаданных Fetch
  • Предварительная загрузка (глоссарий)
  • Элемент <link> с атрибутом rel="prefetch"

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Sec-Purpose

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API