En-tête Clear-Site-Data
Baseline
2023
*
Newly available
Depuis September 2023, cette fonctionnalité fonctionne sur les appareils et les versions de navigateur les plus récents. Elle peut ne pas fonctionner sur les appareils ou navigateurs plus anciens.
* Certaines parties de cette fonctionnalité peuvent bénéficier de prise en charge variables.
Contexte sécurisé: Cette fonctionnalité est uniquement disponible dans des contextes sécurisés (HTTPS), pour certains navigateurs qui la prennent en charge.
L'en-tête de réponse HTTP Clear-Site-Data envoie un signal au client pour qu'il supprime toutes les données de navigation de certains types (cookies, stockage, cache) associées au site web demandeur.
Il permet aux développeur·euse·s web d'avoir davantage de contrôle sur les données stockées par les navigateurs pour leurs origines.
| Type d'en-tête | En-tête de réponse |
|---|
Syntaxe
// Directive unique
Clear-Site-Data: "cache"
// Directives multiples (séparées par des virgules)
Clear-Site-Data: "cache", "cookies"
// Joker
Clear-Site-Data: "*"
Directives
Note : Toutes les directives doivent respecter la syntaxe quoted-string (angl.). Une directive qui n'inclut pas les guillemets droits n'est pas valide.
"cache"-
Le serveur signale que le client doit supprimer les données mises en cache localement (le cache du navigateur, voir HTTP caching) pour l'origine de l'URL de la réponse. Selon le navigateur, cela peut également supprimer des éléments tels que des pages pré-rendues, cache arrière-avant, des caches de scripts, des caches de shaders WebGL ou des suggestions de la barre d'adresse.
"clientHints"Expérimental-
Indique que le serveur supprimera toutes les indications client (demandées via
Accept-CH) stockées pour l'origine de l'URL de la réponse.Note : Dans les navigateurs qui prennent en charge le type de données
"clientHints", les indications client sont également effacées lorsque les types"cache","cookies"ou"*"sont définis."clientHints"n'est donc nécessaire que lorsque aucun de ces autres types n'est défini. -
Le serveur signale que le client doit supprimer tous les cookies pour l'origine de l'URL de la réponse. Les identifiants d'authentification HTTP sont également effacés. Cela affecte l'ensemble du domaine enregistré, y compris les sous-domaines. Ainsi,
https://exemple.comainsi quehttps://stage.exemple.com, auront leurs cookies supprimés. "executionContexts"Expérimental-
Le serveur signale que le client doit recharger tous les contextes de navigation pour l'origine de l'URL de la réponse (
Location.reload). "prefetchCache"Expérimental Non standard-
Utilisé pour effacer les préchargements des règles spéculatives qui sont limitées à l'origine du référent.
"prerenderCache"Expérimental Non standard-
Utilisé pour effacer les pages pré-rendues des règles spéculatives qui sont limitées à l'origine du référent.
"storage"-
Le serveur signale que le client doit supprimer tout le stockage DOM pour l'origine de l'URL de la réponse. Cela inclut les mécanismes de stockage suivants :
- localStorage (exécute
localStorage.clear), - sessionStorage (exécute
sessionStorage.clear), - IndexedDB (pour chaque base de données exécuter
IDBFactory.deleteDatabase), - Enregistrements de service worker (pour chaque enregistrement de service worker, exécuter
ServiceWorkerRegistration.unregister), - Bases de données Web SQL (obsolètes),
- Données de l'API File and Directory Entries,
- Données de plugin (Flash via
NPP_ClearSiteData(angl.)).
- localStorage (exécute
"*"(joker)-
Le serveur signale que le client doit supprimer tous les types de données pour l'origine de l'URL de la réponse. Si de nouveaux types de données sont ajoutés dans de futures versions de cet en-tête, ils seront également couverts.
Exemples
>Se déconnecter d'un site
Si un·e utilisateur·ice se déconnecte de votre site ou service, vous pouvez souhaiter supprimer les données stockées localement, y compris tout contenu préchargé ou pré‑rendu pour des navigations spéculées.
Pour ce faire, ajoutez l'en-tête Clear-Site-Data à la page qui confirme que la déconnexion du site a été effectuée avec succès (https://exemple.com/logout, par exemple) :
Clear-Site-Data: "cache", "cookies", "storage", "executionContexts", "prefetchCache", "prerenderCache"
Suppression des cookies
Si cet en-tête est renvoyé dans la réponse à https://exemple.com/clear-cookies, tous les cookies du même domaine https://exemple.com et de ses sous-domaines (par exemple https://stage.exemple.com) seront supprimés.
Clear-Site-Data: "cookies"
Suppression des spéculations
Si cet en‑tête est renvoyé dans la réponse à https://exemple.com/change-state.json, tous les pré‑rendus des navigations spéculées sur le même domaine https://exemple.com et ses sous‑domaines (par exemple https://stage.exemple.com) seront supprimés.
Clear-Site-Data: "prerenderCache"
Pour effacer à la fois les spéculations de préchargement et de pré‑rendu, envoyez simultanément prefetchCache et prerenderCache :
Clear-Site-Data: "prefetchCache", "prerenderCache"
Il existe des cas où il est approprié d'effacer l'un ou l'autre, ou les deux.
Par exemple, une application rendue côté client qui récupère des données via JavaScript peut utiliser prerenderCache lors d'un changement d'état pour supprimer les pages pré‑rendues, tout en conservant le HTML préchargé pour l'utiliser lorsque la page est rendue (ou pré‑rendue de nouveau).
En revanche, si le document HTML préchargé contient des données obsolètes mais que la page pré‑rendue correspondante est conçue pour actualiser les données lorsqu'elle est affichée, vous n'aurez peut‑être pas besoin d'utiliser prerenderCache mais souhaiterez probablement utiliser la directive prefetchCache : ainsi, le HTML obsolète ne sera pas utilisé lors d'un futur pré‑rendu.
Enfin, si le document HTML préchargé contient des données obsolètes et que les pages pré‑rendues ne rafraîchissent pas non plus leur contenu, il est préférable de spécifier à la fois prefetchCache et prerenderCache.
Spécifications
| Specification |
|---|
| Clear Site Data> # header> |
Compatibilité des navigateurs
Voir aussi
- L'en-tête HTTP
Cache-Control