Sec-Speculation-Tags header
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Der HTTP-Sec-Speculation-Tags
-Anforderungsheader enthält einen oder mehrere tag
-Werte aus den Speculation Rules, die zur Spekulation geführt haben. Dies ermöglicht es einem Server, zu identifizieren, welche Regel(n) eine Spekulation verursacht haben und diese möglicherweise zu blockieren.
Zum Beispiel könnte ein CDN automatisch Spekulationsregeln einfügen, aber Spekulationen für Ressourcen blockieren, die nicht im CDN zwischengespeichert sind, um unbeabsichtigte Konsequenzen zu vermeiden. Der Sec-Speculation-Tags
-Header ermöglicht es dem CDN, zwischen den von ihm eingefügten Regeln (die in diesem Fall blockiert werden sollten) und den von Seitenbetreibern hinzugefügten Spekulationsregeln (die nicht blockiert werden sollten) zu unterscheiden.
Headertyp | Anforderungsheader |
---|---|
Verbotener Anforderungsheader | Ja (Sec- -Präfix) |
Syntax
Sec-Speculation-Tags: <tag-list>
Direktiven
<tag-list>
-
Eine durch Kommas getrennte Liste von Tags, die auf Regeln der Speculation Rules API hinweisen, die diese Anforderung möglicherweise initiiert haben. Siehe Spekulationsregeln JSON-Darstellung für die Syntaxreferenz.
Beispiele
>Spekulation aus einer Regel ohne explizites Tag
<script type="speculationrules">
{
"prefetch": [
{
"urls": ["next.html", "next2.html"]
}
]
}
</script>
Wenn eine Spekulation aufgrund einer Spekulationsregel ohne Tag erfolgt, wird null
im Sec-Speculation-Tags
-Header gesendet.
Sec-Speculation-Tags: null
Spekulation aus einer Regel mit einem Tag
<script type="speculationrules">
{
"prefetch": [
{
"tag": "my-rule",
"urls": ["next.html", "next2.html"]
}
]
}
</script>
Wenn eine Spekulation aufgrund einer Spekulationsregel mit einem Tag erfolgt, wird der Tag-Name im Sec-Speculation-Tags
-Header gesendet.
Sec-Speculation-Tags: "my-rule"
Spekulation aus einer Regel mit mehreren Tags
Das tag
kann auf mehreren Ebenen festgelegt werden:
<script type="speculationrules">
{
"tag": "my-ruleset",
"prefetch": [
{
"tag": "my-rule",
"urls": ["next.html", "next2.html"]
}
]
}
</script>
Alle passenden Tags werden im Sec-Speculation-Tags
-Header gesendet, also würden in diesem Fall sowohl "my-ruleset"
als auch "my-rule"
gesendet werden:
Sec-Speculation-Tags: "my-ruleset", "my-rule"
Spekulation aus mehreren Regeln
<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>
In diesem Beispiel, wenn die Spekulation durch das Überfahren des Links für 200 Millisekunden veranlasst wird ("eagerness": "moderate"
), dann wird nur das my-rule
-Tag im Header gesendet:
Sec-Speculation-Tags: "my-rule"
Wird der Link jedoch sofort angeklickt, ohne auf die 200 Millisekunden Hover zu warten, dann hätten beide Regeln eine Spekulation ausgelöst, daher werden beide Tags im Header enthalten sein:
Sec-Speculation-Tags: "my-rule", "cdn-rule"
Spekulation aus mehreren Regeln mit und ohne Tags
<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>
Ähnlich wie im vorherigen Beispiel würden, wenn der Link sofort angeklickt wird, ohne auf die 200 Millisekunden Hover zu warten, beide Regeln eine Spekulation auslösen, daher werden beide Tags im Header enthalten sein. Da die erste Regel jedoch kein tag
-Feld enthält, wird sie im Header mit einem null
-Wert dargestellt:
Sec-Speculation-Tags: null, "cdn-rule"
Spezifikationen
Specification |
---|
HTML> # the-sec-speculation-tags-header> |
Browser-Kompatibilität
Loading…