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

Cómo usar Generador de Cache-Control

  1. Elige un ajuste preestablecido o empieza desde cero y elige public o private.
  2. Activa las directivas que necesites, como no-cache, must-revalidate o immutable.
  3. Introduce tiempos de vida como max-age usando un número y una unidad (horas, días, años).
  4. Lee el valor del encabezado generado y la explicación en lenguaje claro debajo.
  5. 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

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