¿Por qué se envía el atributo Cache-Control en el encabezado de solicitud (cliente a servidor)?

163

Después de leer sobre el Cache-Controlcampo del encabezado HTTP,

Yo entiendo que el Cache-Controlcampo en el encabezado de respuesta HTTP (servidor al cliente) especifica las directrices para el navegador de servidores proxy intermedios / cliente sobre cómo manejar la respuesta, mediante el envío de distintos valores para el Cache-Controlcampo: private, public, no-cache, o no-storeen la cabecera de respuesta.

Pero no entiendo por qué necesitamos enviar el Cache-Controlatributo en el encabezado de la solicitud (cliente a servidor).

Estudiante
fuente

Respuestas:

137

Cache-Control: no-cachegeneralmente se usa en un encabezado de solicitud (enviado desde el navegador web al servidor) para forzar la validación del recurso en los proxies intermedios. Si el cliente no envía esta solicitud al servidor, los proxies intermedios devolverán una copia del contenido si es nuevo (no ha expirado según los campos Expireo max-age). Cache-Controldirige estos proxies para revalidar la copia incluso si es nueva.

David
fuente
8
Puede que sea demasiado tarde aquí, pero excepto ¿cuáles son los otros usos? ¿Se utiliza el campo de edad máxima para algún propósito?
Sam
¿Por qué los navegadores modernos tienden a hacer esto? ¿No confían en los proxies intermedios a pesar de que se comportan de acuerdo con los estándares web?
rogerdpack
1
@rogerdpack no, porque confían en ellos, por lo que envían el encabezado en el que confían estarán honrados de indicar que tienen alguna razón especial para requerir una mayor frescura de la que necesitan la mayoría de los usos.
Jon Hanna
1
@rogerdpack si acabas de hacer algo que sabes que habrá cambiado el estado y quieres reflejarlo, sería un caso clásico.
Jon Hanna
77
@ JonHanna ¿Quizás haya marcado "deshabilitar caché" en las herramientas para desarrolladores de Chrome? : D
Gregory Magarshak
15

Un cliente puede enviar un Cache-Controlencabezado en una solicitud para solicitar un comportamiento de almacenamiento en caché específico, como la revalidación, desde el servidor de origen y cualquier servidor proxy intermedio a lo largo de la ruta de solicitud.

bdash
fuente
4

Además de la respuesta anterior,
puede haber una configuración donde se implementa el encadenamiento de caché. En ese caso, si la solicitud llega al primer caché donde no está satisfecha, podría ir a un caché encadenado adicional.

Por lo tanto, para obtener la respuesta siempre del servidor, incluimos el control de caché en los encabezados de solicitud. Esto asegurará que la respuesta siempre sea del servidor.

Loui
fuente
Usted dice "Por lo tanto, para obtener la respuesta siempre del servidor, incluimos el control de caché en los encabezados de solicitud. Esto asegurará que la respuesta sea siempre del servidor". ¿Qué valor de este encabezado lograría eso?
Don Hatch
Cache-Control: no-cachele dirá a los proxies que se aseguren de que la respuesta se valida por completo.
mogsie