¿Qué sucede si no configura el encabezado de control de caché?

13

¿Qué sucede si no configura el cache-controlencabezado? ¿HTTP especifica un comportamiento predeterminado que los clientes deben seguir o depende de los clientes decidir?

En Chrome, he visto algunas solicitudes de Javascript que no tienen cache-controlencabezados como 200 (from disk cache). ¿Chrome está optimizando esto?

En IE, lo he visto aparecer como a 304 (not modified).

¿Cómo entiendo esto mejor?

Nishant
fuente
1
"sin encabezados de caché", lo que significa que no hay encabezado Cache-Control, o realmente no hay encabezados de caché El control de caché no es el único encabezado que afecta el almacenamiento en caché. La mayoría de los servidores web enviarán encabezados de Última modificación para activos estáticos como archivos Javascript.
Fuente de Tim

Respuestas:

18

Si no hay Cache-Controlencabezado ni Expiresencabezado, pero hay un Last-Modifiedencabezado (que la mayoría de los servidores web envían de forma predeterminada para los activos estáticos), la mayoría de los navegadores utilizarán la actualización heurística para determinar durante cuánto tiempo almacenar en caché ese activo.

El cálculo típico para esto (que es el sugerido por RFC 7234 ) es:

(current time - last modified time) / 10

Entonces, por ejemplo, si la última hora modificada para una imagen indica que se modificó por última vez hace 60 días, un navegador podría decidir que podría usar razonablemente la versión en caché local de esa imagen durante 6 días antes de buscar una nueva versión.

Tenga en cuenta que en la mayoría de los casos, si presiona actualizar, le está diciendo al navegador que busque una versión nueva, por lo que en esa situación esta lógica no se aplicaría.

Fuente de tim
fuente
1
¿Y si no hay Last-Modifiedencabezado?
bertonc96