Generador de encabezado Cache-Control
Crea un encabezado de respuesta HTTP Cache-Control correcto a partir de interruptores sencillos y unidades de tiempo humanas, directamente en tu navegador.
Tu encabezado Cache-Control se ensambla localmente en tu navegador a partir de las opciones que eliges, y nada de lo que configuras se sube ni se almacena en un servidor.
¿Configurando un servidor? Prueba el Generador de configuración de nginx.
Acerca de Generador de Cache-Control
Este generador de encabezado Cache-Control convierte el confuso conjunto de directivas de caché HTTP en unos pocos interruptores sencillos. Activa public o private, no-store, no-cache, must-revalidate, proxy-revalidate o immutable, y define tiempos de vida como max-age, s-maxage, stale-while-revalidate y stale-if-error usando unidades humanas como horas, días o años en lugar de contar segundos. A medida que cambias las opciones, la herramienta compone las directivas en el orden canónico, explica en lenguaje claro qué hace exactamente el encabezado actual y señala combinaciones contradictorias como no-store con max-age. Los ajustes preestablecidos cubren los casos cotidianos: un recurso estático immutable de un año, HTML de siempre revalidar, datos privados que nunca se almacenan y una política dividida entre CDN y navegador. Copia el encabezado en bruto o fragmentos listos para nginx, Apache y meta de HTML. Todo se ejecuta en tu dispositivo, en el navegador.
Características
- Interruptores para public, private, no-store, no-cache, must-revalidate, proxy-revalidate e immutable
- Entradas de tiempo humanas (de segundos a años) para max-age, s-maxage, stale-while-revalidate y stale-if-error
- Compone las directivas en un orden canónico limpio a medida que editas
- Explicación en lenguaje claro de qué hace exactamente el encabezado actual
- Aplica reglas de exclusión mutua y advierte sobre combinaciones contradictorias
- Ajustes preestablecidos de un clic para recursos estáticos, HTML de siempre revalidar, datos privados y caché dividida CDN/navegador
- Fragmentos listos para copiar del encabezado en bruto, add_header de nginx, Header set de Apache y una etiqueta meta de HTML
- Se ejecuta por completo en tu navegador, así que nada de lo que configuras sale de tu dispositivo
Cómo usar Generador de Cache-Control
- Elige un ajuste preestablecido o empieza desde cero y elige public o private.
- Activa las directivas que necesites, como no-cache, must-revalidate o immutable.
- Introduce tiempos de vida como max-age usando un número y una unidad (horas, días, años).
- Lee el valor del encabezado generado y la explicación en lenguaje claro debajo.
- Copia el encabezado en bruto o el fragmento de nginx, Apache o meta de HTML que necesites.
Ejemplo
Entrada
public + immutable + max-age = 1 year
Salida
Cache-Control: public, max-age=31536000, immutable
La clásica política de recurso estático con huella: cachear durante un año y no revalidar nunca.
Errores comunes y solución de problemas
- Activaste no-store pero también añadiste max-age o immutable y desaparecieron. — no-store significa que nada se almacena nunca en caché, así que anula cualquier otra directiva. Desactiva no-store si de verdad quieres una respuesta cacheada pero controlada.
- immutable parece no tener efecto. — immutable solo importa mientras una respuesta sigue fresca, así que combínalo con un max-age distinto de cero. Sin max-age no hay ventana de frescura a la que aplicarse.
- Tu CDN ignora s-maxage cuando el encabezado es private. — private prohíbe que las cachés compartidas almacenen la respuesta, así que s-maxage, que solo apunta a las cachés compartidas, nunca se aplica. Usa public si quieres que un CDN la cachee.
- no-cache con un max-age largo se comporta como si no se cacheara. — no-cache fuerza la revalidación con el origen antes de cada reutilización, lo que cancela en la práctica la frescura que concede max-age. Elimina uno de los dos según tu objetivo.
Preguntas frecuentes
- ¿Cuál es la diferencia entre no-cache y no-store?
- no-store significa que la respuesta nunca debe escribirse en ninguna caché, así que cada petición vuelve al origen. no-cache sí permite almacenar la respuesta, pero la caché debe revalidarla con el origen antes de volver a servirla. no-store trata de no guardar una copia; no-cache trata de comprobar siempre que una copia guardada sigue vigente.
- ¿Qué hace immutable en un encabezado Cache-Control?
- immutable le dice al navegador que el recurso nunca cambiará durante la vida de su max-age, así que puede saltarse la revalidación incluso cuando el usuario pulsa recargar. Está pensado para archivos versionados o con huella como app.9f2c.js, donde una nueva compilación se publica bajo una nueva URL en lugar de sobrescribir la anterior.
- ¿En qué se diferencian max-age y s-maxage?
- max-age define cuánto tiempo permanece fresca la respuesta en cualquier caché, incluido el navegador. s-maxage anula a max-age pero solo para las cachés compartidas como CDN y proxies. Definir ambos te permite cachear una respuesta brevemente en los navegadores y mantenerla más tiempo en tu CDN.
- ¿Cuándo debo usar public frente a private?
- public permite que las cachés compartidas como CDN y proxies almacenen la respuesta junto con el navegador. private restringe el almacenamiento al navegador del usuario individual, que es la opción correcta para respuestas personalizadas o autenticadas que no deben servirse a otro usuario desde una caché compartida.
- ¿Qué hace stale-while-revalidate?
- stale-while-revalidate permite que una caché sirva de inmediato una respuesta ligeramente obsoleta mientras obtiene una copia fresca en segundo plano. Los usuarios reciben una respuesta instantánea y la caché se actualiza para la siguiente petición, lo que suaviza el momento en que un recurso expira.
- ¿Se envía mi configuración a un servidor?
- No. El encabezado, la explicación y los fragmentos se ensamblan todos en tu navegador a medida que activas las opciones, así que la configuración se procesa localmente en tu dispositivo y nada se sube.
Herramientas relacionadas
Todas las herramientas de ArrayKit