En-tête Sec-Speculation-Tags
Disponibilité limitée
Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.
Vous voulez une meilleure prise en charge pour cette fonctionnalité ? Dites-nous pourquoi.
Expérimental: Il s'agit d'une technologie expérimentale.
Vérifiez attentivement le tableau de compatibilité des navigateurs avant de l'utiliser en production.
L'en-tête de requête HTTP Sec-Speculation-Tags contient une ou plusieurs valeurs tag provenant des règles de spéculation qui ont entraîné la spéculation. Cela permet à un serveur d'identifier quelle(s) règle(s) a(ont) causé une spéculation et de potentiellement les bloquer.
Par exemple, un CDN peut insérer automatiquement des règles de spéculation, mais bloquer les spéculations pour les ressources non mises en cache dans le CDN afin d'éviter des conséquences inattendues. L'en-tête Sec-Speculation-Tags permet au CDN de différencier les règles qu'il a insérées (qui doivent être bloquées dans ce cas) et les règles de spéculation ajoutées par le propriétaire du site (qui ne doivent pas être bloquées).
| Type d'en-tête | En-tête de requête |
|---|---|
| En-tête de requête interdit | Oui (préfixe Sec-) |
Syntaxe
Sec-Speculation-Tags: <tag-list>
Directives
<tag-list>-
Une liste d'étiquettes séparée par des virgules indiquant les règles de l'API Speculation Rules qui ont pu initier cette requête. Voir Représentation JSON des règles de spéculation pour la référence de syntaxe.
Exemples
>Spéculation à partir d'une règle sans étiquette explicite
<script type="speculationrules">
{
"prefetch": [
{
"urls": ["suivant.html", "suivant2.html"]
}
]
}
</script>
Si une spéculation se produit en raison d'une règle de spéculation sans étiquette, alors null est envoyé dans l'en-tête Sec-Speculation-Tags.
Sec-Speculation-Tags: null
Spéculation à partir d'une règle avec une étiquette
<script type="speculationrules">
{
"prefetch": [
{
"tag": "ma-regle",
"urls": ["suivant.html", "suivant2.html"]
}
]
}
</script>
Si une spéculation se produit en raison d'une règle de spéculation avec une étiquette, le nom de l'étiquette est envoyé dans l'en-tête Sec-Speculation-Tags.
Sec-Speculation-Tags: "ma-regle"
Spéculation à partir d'une règle avec plusieurs étiquettes
Un tag peut être défini à plusieurs niveaux :
<script type="speculationrules">
{
"tag": "ma-collection-de-regles",
"prefetch": [
{
"tag": "ma-regle",
"urls": ["suivant.html", "suivant2.html"]
}
]
}
</script>
Toutes les étiquettes correspondantes sont envoyées dans l'en-tête Sec-Speculation-Tags, donc dans ce cas, à la fois "ma-collection-de-regles" et "ma-regle" sont envoyées :
Sec-Speculation-Tags: "ma-collection-de-regles", "ma-regle"
Spéculation à partir de plusieurs règles
<script type="speculationrules">
{
"prefetch": [
{
"tag": "ma-regle",
"urls": ["suivant.html", "suivant2.html"],
"eagerness": "moderate"
}
]
}
</script>
<script type="speculationrules">
{
"prefetch": [
{
"tag": "regle-cdn",
"urls": ["suivant.html", "suivant.html"],
"eagerness": "conservative"
}
]
}
</script>
Dans cet exemple, si la spéculation est initiée par le fait que l'utilisateur·ice survole le lien pendant 200 millisecondes ("eagerness": "moderate"), alors seule l'étiquette ma-regle est envoyée dans l'en-tête :
Sec-Speculation-Tags: "ma-regle"
Cependant, si le lien est cliqué immédiatement, sans attendre les 200 millisecondes de survol, alors les deux règles ont déclenché une spéculation, donc les deux étiquettes sont incluses dans l'en-tête :
Sec-Speculation-Tags: "ma-regle", "regle-cdn"
Spéculation à partir de plusieurs règles, avec et sans étiquettes
<script type="speculationrules">
{
"prefetch": [
{
"urls": ["suivant.html", "suivant2.html"],
"eagerness": "moderate"
}
]
}
</script>
<script type="speculationrules">
{
"prefetch": [
{
"tag": "regle-cdn",
"urls": ["suivant.html", "suivant.html"],
"eagerness": "conservative"
}
]
}
</script>
De manière similaire à l'exemple précédent, si le lien est cliqué immédiatement sans attendre les 200 millisecondes de survol, les deux règles ont déclenché une spéculation, donc les deux étiquettes sont incluses dans l'en-tête. Cependant, comme la première règle n'inclut pas de champ tag, elle est représentée dans l'en-tête avec une valeur null :
Sec-Speculation-Tags: null, "regle-cdn"
Spécifications
| Spécification |
|---|
| HTML> # the-sec-speculation-tags-header> |
Compatibilité des navigateurs
Voir aussi
- L'API Speculation Rules
- La valeur d'attribut HTML
<script type="speculationrules">