También disponible en: English · Português · Français · العربية
Cabecera Cache-Control: todas las directivas y qué ve una CDN
Elige directivas y obtén una cabecera, o pega una y descubre qué le dice de verdad a un navegador y a una caché compartida.
¿Qué es la cabecera Cache-Control?
Cache-Control es la forma que tiene un servidor de decirle a las cachés qué pueden hacer con una respuesta, y la que tiene un cliente de decirles qué aceptará. El RFC 9111 define diecisiete directivas: siete que van en una petición y diez que van en una respuesta. Cuatro nombres aparecen en los dos lados —max-age, no-cache, no-store y no-transform— y significan cosas distintas según en qué dirección viaje el mensaje.
La distinción que más importa no está en la lista de directivas. El RFC 9111 separa la caché compartida, es decir una CDN o un proxy inverso o cualquier cosa que sirva a más de una persona, de la caché privada, que es la del navegador. Siete de las diecisiete directivas nombran una caché compartida en su definición y solo dos nombran las dos. IANA mantiene un registro de estas directivas y no recoge nada de eso: nombres y referencias y nada sobre comportamiento, así que esta página lee la prosa de la especificación.
Por eso una cabecera puede parecer minuciosa y no decirle nada a tu CDN. max-age se dirige a cualquier caché; s-maxage, public, private y proxy-revalidate son las que señalan expresamente a la compartida.
Cómo usarla
- Elige el lado. Respuesta es el caso habitual: lo que envía tu servidor. Petición es lo que envía un navegador o un cliente, y tiene otro conjunto de siete directivas.
- Pulsa directivas o escribe la cabecera directamente. Los botones y el campo de texto son lo mismo: activar una directiva reescribe el campo, y editar el campo actualiza los botones.
- Lee el veredicto, no solo la cadena. Se te dice si algo de ahí llega a una caché compartida, qué se está prohibiendo en realidad y qué directivas tienen problemas, con la redacción original de la especificación debajo.
no-cache no significa «no almacenes»
Es la lectura equivocada con más consecuencias de toda la cabecera, y el RFC 9111 la zanja sin rodeos. La forma de respuesta de no-cache significa que la respuesta «no debe usarse para satisfacer ninguna otra petición sin reenviarla para su validación». La respuesta se sigue almacenando. Sencillamente no puede volver a entregarse sin consultar antes a tu servidor, que suele ser justo lo que la gente quiere y en absoluto lo que cree estar pidiendo.
La directiva que prohíbe almacenar es no-store: una caché «no debe almacenar ninguna parte» de la petición ni de la respuesta. Si tienes datos sensibles y recurriste a no-cache, recurriste a la equivocada. Esta página informa de las dos como hallazgos separados en vez de mezclarlas, y lo advierte en el momento cuando una cabecera lleva no-cache sin no-store.
Un matiz relacionado que conviene conocer: no-cache puede llevar un nombre de cabecera como valor, y las dos formas difieren. Sin valor se aplica a toda la respuesta. Con un nombre de cabecera restringe solo esa, mientras el resto de la respuesta puede seguir reutilizándose. Siete directivas llevan valor y solo cuatro lo exigen: no-cache, private y max-stale tienen una forma perfectamente válida sin nada detrás.
Lo que esta página no te va a decir
No te va a decir qué hace tu CDN concreta. Las directivas son lo que la especificación dice que una caché conforme debe y puede hacer; cada CDN comercial añade encima su propia configuración, sus directivas propietarias y sus valores por defecto, y varias respetan extensiones no estándar que esta página desconoce. Que una directiva figure como que llega a una caché compartida te dice que el estándar se dirige a ella, no que tu proveedor la implemente como esperas.
Tampoco cubre más que Cache-Control. La frescura la deciden también otras cabeceras —Expires, Age, ETag y Last-Modified participan todas—, y una respuesta sin Cache-Control puede almacenarse igualmente por heurística. Revisar una cabecera es un paso necesario, no una auditoría completa.
Y expone las palabras de la especificación, no consejos. Aquí no hay una cabecera recomendada, porque la correcta depende de si el recurso es personalizado, de si su URL lleva versión y de con qué rapidez necesitas que un cambio llegue a la gente. Lo que sí puede hacer la página es asegurarse de que la cabecera que elegiste significa lo que crees.
¿Por qué es gratis?
La tabla de directivas son unos pocos kilobytes que viajan con la página, y el análisis ocurre en tu propio navegador. Nada de lo que escribes se sube, no se registra nada y no hay cuenta que crear.
Sin registro, sin límites y sin marca de agua en nada de lo que copies.