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.
Nicht standardisiert: Diese Funktion ist nicht standardisiert. Wir raten davon ab, nicht-standardisierte Funktionen auf produktiven Webseiten zu verwenden, da sie nur von bestimmten Browsern unterstützt werden und sich in Zukunft ändern oder entfernt werden können. Unter Umständen kann sie jedoch eine geeignete Option sein, wenn es keine standardisierte Alternative gibt.
Der HTTP-Sec-Speculation-Tags
-Request-Header enthält einen oder mehrere tag
-Werte aus den Spekulationsregeln, die zu der Spekulation geführt haben. Dies ermöglicht es einem Server zu identifizieren, welche Regel(n) die Spekulation verursacht haben, und sie gegebenenfalls zu blockieren.
Ein CDN kann beispielsweise automatisch Spekulationsregeln einfügen, jedoch 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 Spekulationsregeln des Website-Eigentümers (die nicht blockiert werden sollten) zu unterscheiden.
Header-Typ | Request-Header |
---|---|
Verbotener Request-Header | Ja (Sec- -Präfix) |
Syntax
Sec-Speculation-Tags: <tag-list>
Direktiven
<tag-list>
-
Eine kommagetrennte Liste von Tags, die auf Speculation Rules API-Regeln hinweisen, die diese Anfrage möglicherweise initiiert haben. Siehe JSON-Darstellung der Spekulationsregeln für die Syntaxreferenz.
Beispiele
>Spekulation aus einer Regel ohne expliziten Tag
<script type="speculationrules">
{
"prefetch": [
{
"urls": ["next.html", "next2.html"]
}
]
}
</script>
Wenn eine Spekulation aufgrund einer Spekulationsregel ohne Tag erfolgt, dann 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
Der 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, in diesem Fall würden also sowohl "my-ruleset"
als auch "my-rule"
gesendet:
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 dadurch initiiert wird, dass der Benutzer 200 Millisekunden über den Link schwebt ("eagerness": "moderate"
), wird nur der my-rule
-Tag im Header gesendet:
Sec-Speculation-Tags: "my-rule"
Wird der Link jedoch sofort angeklickt, ohne auf das 200-Millisekunden-Hover zu warten, würden beide Regeln eine Spekulation auslösen, 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, 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 durch einen null
-Wert dargestellt:
Sec-Speculation-Tags: null, "cdn-rule"
Spezifikationen
This feature does not appear to be defined in any specification.>Browser-Kompatibilität
Loading…