Saltar al contenido
AZ Tools

Constructor de Encabezado Cache-Control

Compone un encabezado Cache-Control válido siguiendo RFC 9111. Marca las directivas que necesites (no-cache, no-store, immutable, …), establece las ventanas de frescura (max-age, s-maxage, stale-while-revalidate, stale-if-error), y copia el encabezado resultante. Incluye cuatro presets que cubren los patrones de despliegue más comunes: asset estático inmutable, página privada renderizada, respuesta API pública con servicio stale, y no-store completo.

Presets
Visibilidad
Frescura (segundos)
Directivas
Salida
Cache-Control: public, max-age=3600

no-store sobrescribe cualquier otra directiva — cuando está activo, solo no-transform se emite también.

Cómo usar

  1. Empieza desde un preset que coincida con tu escenario, luego ajusta.
  2. Los campos numéricos toman segundos — déjalos vacíos para omitir la directiva por completo.
  3. Copia el resultado en tu servidor de origen, regla CDN, o encabezados de respuesta del framework.

Preguntas frecuentes

¿Cuándo debería usar immutable?
Combínalo con un max-age largo (un año es común) en assets cuyo nombre de archivo contenga un hash de contenido. Entonces el navegador omite la revalidación condicional que de otra forma haría en un soft refresh.
¿no-cache vs no-store?
no-cache significa que una copia almacenada debe ser revalidada antes de usarse; no-store significa no almacenar en absoluto. no-store gana cuando la respuesta contiene datos privados que nunca deben quedar en disco.
He puesto la cabecera y no se cachea nada. ¿Y ahora?
Tres causas explican casi todos los casos. Una respuesta que además lleva Set-Cookie es tratada como personal por las cachés compartidas y una CDN suele saltársela. Una petición enviada con credenciales no se almacena en una caché compartida salvo que lo permitas explícitamente. Y la recarga del navegador revalida diga lo que diga la cabecera, así que probar con recarga forzada siempre parecerá que la ignora: abre la URL en una pestaña nueva.
¿Cómo se relaciona esto con Expires y ETag?
Donde estén ambos, max-age gana a Expires; Expires solo importa para cachés demasiado antiguas para entender Cache-Control. ETag y Last-Modified son otro mecanismo distinto: no afectan a la frescura, sino que abaratan la petición cuando la respuesta ya ha caducado, permitiendo al servidor responder 304 sin cuerpo. Están pensados para usarse juntos.

Herramientas relacionadas