Заголовки: 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.
Спецификации
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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