Encabezados de Control de Caché


Las cabeceras de caché son componentes fundamentales para controlar cómo se almacenan en caché los recursos de una aplicación, tanto por los navegadores (caché del cliente) como por los proxies intermedios (como Peqi, por ejemplo). La configuración adecuada de estas cabeceras puede resultar en mejoras significativas en la velocidad de carga de la página, la eficiencia del ancho de banda y la experiencia general del usuario. Exploraremos las cabeceras de caché más comunes y cómo se utilizan para controlar el comportamiento de la caché.

Cache-Control

La cabecera Cache-Control es una de las más potentes y flexibles para el control de la caché. Permite especificar directivas tanto para cachés privadas (navegadores) como públicas (proxies y CDNs).

max-age=[segundos]: especifica el tiempo máximo que se considera que un recurso está fresco.
no-cache: fuerza a la caché a revalidar el recurso con el servidor antes de servir la versión en caché.
no-store: indica a la caché que no almacene una copia del recurso bajo ninguna circunstancia.
public: indica que la respuesta puede ser almacenada por cualquier caché, incluso si la respuesta normalmente no es almacenable en caché.
private: la respuesta está destinada a un solo usuario y no debe ser almacenada por cachés compartidas.
must-revalidate: la caché debe volver a validar un recurso caducado antes de usarlo, asegurando que el contenido no esté desactualizado.

Expires

La cabecera Expires se utiliza para establecer una fecha/hora específica después de la cual la respuesta se considera obsoleta. Si el contenido es estático y no cambia con frecuencia, esta cabecera puede ser una forma simple de controlar la caché.

ETag

La cabecera ETag proporciona un identificador único para una versión de un recurso. Esto permite un método eficiente de validación: el cliente puede enviar una cabecera If-None-Match con el ETag en solicitudes posteriores. Si el recurso no ha cambiado, el servidor puede responder con un estado 304 (No Modificado), lo que indica que se puede reutilizar la caché.

Last-Modified

Similar al ETag, la cabecera Last-Modified indica la última vez que se modificó el recurso. Los clientes pueden enviar una cabecera If-Modified-Since en solicitudes posteriores. Si el recurso no ha sido modificado desde entonces, el servidor responde con 304, permitiendo el uso de la caché.

Pragma

La cabecera Pragma es una cabecera HTTP/1.0, generalmente utilizada solo como un recurso de respaldo para la compatibilidad con cachés HTTP/1.0 donde no se admite la cabecera Cache-Control. El valor Pragma: no-cache es equivalente a Cache-Control: no-cache.

Vary

La cabecera Vary informa a la caché que la respuesta solicitada es variable en función de una o más cabeceras de solicitud. Por ejemplo, Vary: User-Agent indica que se puede almacenar y servir una respuesta diferente según el agente de usuario que realiza la solicitud.

Related Articles