HTTPQUERY
Español

Clear-Site-Data

Uso

Desplegar un recurso defectuoso, rotar tokens de autenticación o cerrar la sesión de un usuario son situaciones que exigen eliminar datos obsoletos del lado del cliente. Guiar a los usuarios para que vacíen la caché manualmente no es fiable. La cabecera Clear-Site-Data ofrece al servidor una forma declarativa de desalojar categorías concretas de datos almacenados en una sola respuesta.

La cabecera acepta una o varias directivas en forma de cadena entre comillas que indican qué tipos de datos deben borrarse. Varias directivas se separan por comas. El comodín ”*” borra todo, incluidos los tipos de datos que añadan futuras revisiones de la especificación.

La cabecera solo funciona sobre HTTPS. Los navegadores la ignoran en respuestas HTTP no seguras. El alcance de “cookies” se extiende a todo el dominio registrado y a todos sus subdominios, lo que significa que una respuesta Clear-Site-Data desde example.re también borra las cookies establecidas por stage.example.re.

Un patrón de despliegue habitual consiste en adjuntar la cabecera a un endpoint de cierre de sesión. El servidor responde a la solicitud de salida con Clear-Site-Data para eliminar de una sola pasada las cookies de sesión, los recursos cacheados y el almacenamiento local. Otro patrón es una URL dedicada a invalidar la caché, servida temporalmente tras un despliegue fallido, que permite a los operadores forzar a los visitantes a usar recursos nuevos sin esperar a que caduque la caché.

Nota

Enviar Clear-Site-Data en cada respuesta desactiva en la práctica el almacenamiento en caché de todo el sitio. Cada carga de página desaloja la caché del navegador y provoca una degradación notable del rendimiento. Limite la cabecera a respuestas puntuales, como endpoints de cierre de sesión, páginas de recuperación de errores o URL temporales de invalidación de caché.

Nota

Todos los navegadores principales admiten la cabecera Clear-Site-Data. Safari admite todas las directivas salvo “executionContexts” y aplica particionado por origen, lo que impide que un iframe de otro sitio borre datos de origen propio.

”cache”

Borra la caché HTTP del navegador para el origen. Algunas implementaciones borran además cachés relacionadas, como páginas prerenderizadas, entradas de la caché de avance y retroceso, cachés de scripts, cachés de shaders de WebGL y sugerencias de la barra de direcciones.

”cookies”

Borra todas las cookies del dominio registrado y de todos sus subdominios. También borra las credenciales de autenticación HTTP asociadas al origen. Su alcance es más amplio que el de las demás directivas porque la coincidencia de dominio de las cookies incluye subdominios padre y hermanos.

”storage”

Borra el almacenamiento DOM del origen. Esto incluye localStorage, sessionStorage, bases de datos IndexedDB, registros de Service Worker, bases de datos Web SQL (obsoletas), datos de la FileSystem API y datos de plugins.

”executionContexts”

Recarga todos los contextos de navegación del origen. El navegador ejecuta el equivalente de location.reload() en cada pestaña o marco abierto asociado al origen. Esta directiva es experimental y no está ampliamente implementada.

Extensiones específicas de Chromium

Las directivas “clientHints”, “prefetchCache” y “prerenderCache” son extensiones específicas de Chromium que no están definidas en la especificación Clear Site Data del W3C. Las directivas definidas por la especificación son “cache”, “cookies”, “storage”, “executionContexts” y ”*”. Las extensiones de Chromium solo funcionan en navegadores basados en Chromium y no son reconocidas por Firefox ni por Safari.

”clientHints”

Borra las preferencias almacenadas de client hints establecidas mediante la cabecera Accept-CH. Extensión específica de Chromium. Borrar “cache”, “cookies” o ”*” también borra automáticamente los client hints.

”prefetchCache”

Borra las cachés de precarga de Speculation Rules cuyo ámbito es el origen del referrer. Extensión específica de Chromium. Resulta útil para descartar contenido precargado obsoleto tras un cambio de estado, como un inicio o cierre de sesión. La cabecera con esta directiva funciona en cualquier respuesta HTTP del mismo sitio.

”prerenderCache”

Borra las cachés de prerenderizado de Speculation Rules cuyo ámbito es el origen del referrer. Extensión específica de Chromium. Combinada con “prefetchCache” permite borrar todas las cachés de carga especulativa. Una aplicación renderizada en el cliente que obtiene datos desde JavaScript usa “prerenderCache” en los cambios de estado para descartar las páginas prerenderizadas manteniendo intacto el HTML precargado.

”*” (comodín)

Borra todos los tipos de datos del origen, incluidos los tipos de directiva que se añadan a la especificación en el futuro. Es la opción más segura para una limpieza completa y la que más afecta a la experiencia de navegación.

Ejemplo

Un endpoint de cierre de sesión borra las cookies de sesión y el almacenamiento. El navegador elimina todas las cookies del dominio (incluidos los subdominios), borra los datos de localStorage e IndexedDB y descarta los recursos cacheados.

Clear-Site-Data: "cache", "cookies", "storage"

Un borrado dirigido únicamente a la caché tras un despliegue fallido. El servidor adjunta esta cabecera a las respuestas temporalmente, hasta que los visitantes hayan pasado a los recursos nuevos.

Clear-Site-Data: "cache"

Una limpieza completa mediante el comodín. Se eliminan todos los datos cacheados, las cookies, el almacenamiento y cualquier tipo de dato futuro. Habitual en las páginas de confirmación de eliminación de cuenta.

Clear-Site-Data: "*"

Borrado exclusivo de las cachés de carga especulativa tras un cambio de estado. Se descartan las páginas precargadas y prerenderizadas anteriores al evento de inicio de sesión.

Clear-Site-Data: "prefetchCache", "prerenderCache"