Spec-Zone.ru › HTTP

Заголовки: 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 Нет

См. также

  • Speculation Rules API
  • <script type="speculationrules">

© 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

Spec-Zone.ru

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