--- title: Cache-Control slug: Web/HTTP/Headers/Cache-Control tags: - Cache-Control - Encabezado general - HTTP - Referencia - encabezado HTTP translation_of: Web/HTTP/Headers/Cache-Control ---
El encabezado HTTP Cache-Control
especifica directivas (instrucciones) para almacenar temporalmente (caching) tanto en peticiones como en respuestas. Una directiva dada en una petición no significa que la misma directiva estar en la respuesta.
Tipo de encabezado | {{Glossary("General header", "Encabezado general")}} |
---|---|
{{Glossary("Forbidden header name", "nombre prohibido del encabezado")}} | no |
{{Glossary("CORS-safelisted response header", "Respuesta del encabezado CORS-safelisted")}} | yes |
Las directivas para almacenamiento temporal siguen las siguientes reglas para ser válidas:
Las directivas estándar Cache-Control
que pueden ser usadas por el cliente en una solicitud HTTP.
Cache-Control: max-age=<seconds> Cache-Control: max-stale[=<seconds>] Cache-Control: min-fresh=<seconds> Cache-Control: no-cache Cache-Control: no-store Cache-Control: no-transform Cache-Control: only-if-cached
Las diretivas estándar Cache-Control
que pueden ser usadas por el servidor en una respuesta HTTP.
Cache-Control: must-revalidate Cache-Control: no-cache Cache-Control: no-store Cache-Control: no-transform Cache-Control: public Cache-Control: private Cache-Control: proxy-revalidate Cache-Control: max-age=<seconds> Cache-Control: s-maxage=<seconds>
Las directivas de extensión Cache-Control
no forman parte de la base del documento estandar para cacheo HTTP. Revisé la tabla de compatibilidad para ver su soporte, los agentes de usuario que no reconocen estas directivas las ignorarán.
Cache-Control: immutable Cache-Control: stale-while-revalidate=<seconds> Cache-Control: stale-if-error=<seconds>
public
private
no-store
. Esta directiva no es efectiva previniendo el cacheo al almacenar respuestas.no-cache
no-cache
en conjunción con immutable
. Si no desea almacenar la respuesta en algún cache, se debe utilizar no-store
en su lugar. Esta directiva no es efectiva para prevenir el cacheo al guardar la respuesta.no-store
max-age=0
es implícito. Configurando must-revalidate
no tiene sentido porque en orden para revalidar se necesita que la respuesta este almacenada en la cache, lo cual no-store
previene.pre-check=0,post-check=0
si lo ve en línea porque es completamente ignorado, confirmado por el tweet de un desarrollador de Edge.no-store
no-cache,no-store,must-revalidate,pre-check=0,post-check=0
max-age=<seconds>
Expires
, esta directiva es relativa a el tiempo de la petición.s-maxage=<seconds>
max-age
o el Expires
, pero solo para caches compartidos (e.g., proxies). Ignorado por caches privados.max-stale[=<seconds>]
min-fresh=<seconds>
stale-while-revalidate=<seconds>
{{Experimental_Inline}}stale-while-revalidate
" para más información.stale-if-error=<seconds>
{{Experimental_Inline}}must-revalidate
proxy-revalidate
must-revalidate
, pero solo para caches compartidos (es decir, proxies). Ignorado por caches privados.immutable
If-None-Match
o If-Modified-Since
) para revisar por actualizaciones, incluso cuando el usuario explícitamente recarga la página. Los clientes que no son consientes de esta extensión las ignoran deacuerdo a la especificación HTTP. En Firefox, immutable
solo es respetada en transacciones https://
. Para más información, ver también este árticulo de un blog.no-transform
no-transform
no permite esto.only-if-cached
504
. Encabezados condicionales como If-None-Match
no deberían ser definidos. No hay efecto si only-if-cached
es definido por un servidor como parte de una respuesta.Para desactivar el almacenamiento en caché, puede enviar el siguiente encabezado de respuesta. Además, ver también los encabezados Expires y Pragma.
Cache-Control: no-store
Cache-Control: private,no-cache,no-store,max-age=0,must-revalidate,pre-check=0,post-check=0
Para los archivos de la aplicación que no cambian, generalmente se puede agregar almacenamiento en caché agresivo enviando el encabezado de respuesta a continuación. Esto incluye, por ejemplo, archivos estáticos servidos por la aplicación, como imágenes, archivos CSS y archivos JavaScript. Además, vea también, el encabezado Expires
.
Cache-Control: public, max-age=604800, immutable
Especificando no-cache o max-age=0
se indica a los clientes que se puede almacenar temporalmente un recurso y debe revalidarse en cada ocasión antes de utilizarse. Esto significa que las peticiones HTTP ocurren cada vez, pero se pueden saltar la descarga del cuerpo HTTP si el contenido es válido.
Cache-Control: no-cache Cache-Control: no-cache, max-age=0 Cache-Control: no-cache, max-age=0, stale-while-revalidate=300
Especificaciones | Estado | Comentario |
---|---|---|
{{RFC(8246, "HTTP Immutable Responses")}} | IETF RFC | |
{{RFC(7234, "Hypertext Transfer Protocol (HTTP/1.1): Caching")}} | IETF RFC | |
{{RFC(5861, "HTTP Cache-Control Extensions for Stale Content")}} | IETF RFC | Definición inicial |
La tabla de compatibilidad en esta página se genera a partir de datos estructurados. Si desea contribuir con los datos, visite https://github.com/mdn/browser-compat-data y envíenos una solicitud de extracción.
{{Compat("http.headers.Cache-Control")}}
Cache-Control
para civiles