#322 · Herramienta para desarrolladores

Generador de cabecera Cache-Control

Compone una cabecera Cache-Control coherente a partir de directivas habituales para navegador y cachés compartidas. Puedes definir public o private, max-age, s-maxage y flags de revalidación sin memorizar el orden ni la sintaxis. La salida incluye la cabecera lista para copiar y un resumen de las decisiones de caché aplicadas.

Datos de entrada

Entrada local
Espacio publicitario

Cómo usar esta herramienta para desarrolladores

  1. Pega o escribe política de caché en json en el área de entrada.
  2. Ajusta los valores del ejemplo si necesitas reproducir otro caso.
  3. Pulsa el botón principal o usa Ctrl/Cmd + Enter.
  4. Revisa el resultado, el diagnóstico y las métricas antes de copiar o descargar.

Qué hace esta herramienta para desarrolladores

Convierte una configuración estructurada en una línea Cache-Control. Valida segundos no negativos y evita combinaciones obvias como public y private simultáneos al usar un único campo scope.

Añade directivas en un orden estable: ámbito, tiempos de vida y comportamiento de revalidación o almacenamiento.

La cabecera expresa una política, pero proxies, CDNs y navegadores pueden tener reglas adicionales o cabeceras heredadas que modifiquen el resultado.

Ejemplo

Entrada: {"scope":"public","maxAge":3600,"sMaxAge":7200,"mustRevalidate":true} Salida: Cache-Control: public, max-age=3600, s-maxage=7200, must-revalidate

Casos de uso

  • Definir caché de assets versionados.
  • Preparar políticas para respuestas de API.
  • Comparar TTL de navegador y CDN con max-age y s-maxage.

Consejos para obtener resultados fiables

  • Usa no-store para datos que no deben almacenarse.
  • Reserva immutable para recursos versionados cuyo contenido no cambia.
  • s-maxage se aplica a cachés compartidas y puede diferir de max-age.
  • Comprueba también Expires, ETag y la configuración del CDN si el comportamiento real no coincide.

Detalles del procesamiento

Los valores numéricos se convierten a enteros de segundos y se rechazan si son negativos o no finitos. Los flags solo se añaden cuando su valor es verdadero.

No simula la caché de un navegador o CDN ni resuelve precedencias específicas de proveedores.

Preguntas frecuentes

¿Cuál es la diferencia entre max-age y s-maxage en Cache-Control?

max-age define la frescura para cachés en general, mientras que s-maxage está destinado a cachés compartidas y puede sobrescribir max-age allí.

¿Cuándo conviene usar Cache-Control: no-store?

Cuando la respuesta no debe almacenarse en caché, especialmente si contiene información sensible o altamente dinámica.

¿public y private pueden aparecer juntos en Cache-Control?

No es una combinación útil; expresan ámbitos incompatibles. El generador utiliza un único campo de ámbito para evitarla.

¿immutable evita todas las revalidaciones del navegador?

Indica que el recurso no cambiará mientras siga fresco; su efecto depende del soporte del cliente y debe combinarse con una estrategia de versionado.

¿Cache-Control sustituye a ETag y Last-Modified?

No necesariamente. Cache-Control define frescura y almacenamiento, mientras que ETag y Last-Modified ayudan a revalidar contenido.

Resumen técnico

ElementoTratamiento
EntradaTexto o JSON pegado localmente
ProcesamientoVanilla JavaScript, sin solicitudes externas
SalidaResultado copiable y descargable

Más herramientas de cabeceras HTTP y seguridad

Consulta el hub de cabeceras HTTP y seguridad para trabajar con CORS, cookies, CSP, HSTS, caché y políticas del navegador.