Заголовки: Sec-Speculation-Tags
Заголовок Sec-Speculation-Tags
Ограниченная доступность
Эта функция не входит в Baseline, поскольку не работает в некоторых наиболее широко используемых браузерах.
Хотите, чтобы эта функция поддерживалась в большем количестве браузеров? Расскажите нам почему.
Экспериментальная функция: Это экспериментальная технология
Перед использованием в рабочей среде внимательно изучите таблицу совместимости с браузерами.
HTTP-заголовок Sec-Speculation-Tags запроса содержит одно или несколько значений tag из правил спекулятивной загрузки, которые привели к спекулятивной загрузке. Это позволяет серверу определить, какое правило (или правила) вызвали спекулятивную загрузку, и, возможно, заблокировать их.
Например, CDN может автоматически добавлять правила спекулятивной загрузки, но блокировать спекулятивную загрузку ресурсов, не сохранённых в кэше CDN, чтобы избежать нежелательных последствий. Заголовок Sec-Speculation-Tags позволяет CDN отличать правила, добавленные им (которые в данном случае следует блокировать), от правил спекулятивной загрузки, добавленных владельцем сайта (которые блокировать не следует).
| Тип заголовка | Заголовок запроса |
|---|---|
| Запрещённый заголовок запроса | Да (префикс Sec-) |
Синтаксис
Sec-Speculation-Tags: <tag-list>
Директивы
<tag-list>-
Список тегов, разделённых запятыми, указывающих на правила Speculation Rules API, которые могли инициировать этот запрос. Описание синтаксиса см. в разделе JSON-представление правил спекулятивной загрузки.
Примеры
>Спекулятивная загрузка по правилу без явного тега
<script type="speculationrules">
{
"prefetch": [
{
"urls": ["next.html", "next2.html"]
}
]
}
</script>
Если спекулятивная загрузка происходит из-за правила без тега, в заголовок Sec-Speculation-Tags отправляется значение null.
Sec-Speculation-Tags: null
Спекулятивная загрузка по правилу с тегом
<script type="speculationrules">
{
"prefetch": [
{
"tag": "my-rule",
"urls": ["next.html", "next2.html"]
}
]
}
</script>
Если спекулятивная загрузка происходит из-за правила с тегом, имя тега отправляется в заголовке Sec-Speculation-Tags.
Sec-Speculation-Tags: "my-rule"
Спекулятивная загрузка по правилу с несколькими тегами
Значение tag можно задать на нескольких уровнях:
<script type="speculationrules">
{
"tag": "my-ruleset",
"prefetch": [
{
"tag": "my-rule",
"urls": ["next.html", "next2.html"]
}
]
}
</script>
Все совпадающие теги отправляются в заголовке Sec-Speculation-Tags, поэтому в данном случае будут отправлены и "my-ruleset", и "my-rule":
Sec-Speculation-Tags: "my-ruleset", "my-rule"
Спекулятивная загрузка по нескольким правилам
<script type="speculationrules">
{
"prefetch": [
{
"tag": "my-rule",
"urls": ["next.html", "next2.html"],
"eagerness": "moderate"
}
]
}
</script>
<script type="speculationrules">
{
"prefetch": [
{
"tag": "cdn-rule",
"urls": ["next.html", "next.html"],
"eagerness": "conservative"
}
]
}
</script>
В этом примере, если пользователь наведёт указатель на ссылку на 200 миллисекунд ("eagerness": "moderate"), инициировав спекулятивную загрузку, в заголовок будет отправлен только тег my-rule:
Sec-Speculation-Tags: "my-rule"
Однако, если сразу нажать на ссылку, не дожидаясь 200-миллисекундного наведения указателя, спекулятивную загрузку инициируют оба правила, поэтому в заголовок будут включены оба тега:
Sec-Speculation-Tags: "my-rule", "cdn-rule"
Спекулятивная загрузка по нескольким правилам с тегами и без них
<script type="speculationrules">
{
"prefetch": [
{
"urls": ["next.html", "next2.html"],
"eagerness": "moderate"
}
]
}
</script>
<script type="speculationrules">
{
"prefetch": [
{
"tag": "cdn-rule",
"urls": ["next.html", "next.html"],
"eagerness": "conservative"
}
]
}
</script>
Как и в предыдущем примере, если сразу нажать на ссылку, не дожидаясь 200-миллисекундного наведения указателя, спекулятивную загрузку инициируют оба правила, поэтому в заголовок будут включены оба тега. Однако, поскольку первое правило не содержит поля tag, в заголовке оно представлено значением null:
Sec-Speculation-Tags: null, "cdn-rule"
Спецификации
| Спецификация |
|---|
| HTML> # the-sec-speculation-tags-header> |
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
Sec-Speculation-Tags |
136 | 136 | Нет | 121 | 26.2 | 136 | Нет | 90 | 26.2 | 29.0 | 136 | Нет |
См. также
© 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-Speculation-Tags