¿Cuánto tiempo almacena en caché Google Chrome un recurso si caduca y / o no se configuran los encabezados sin caché?

Hemos tenido un problema con el almacenamiento en caché de Chrome de un recurso en nuestro servidor Glassfish. El vencimiento y los encabezados sin caché no se envían y Chrome almacena en caché el recurso (un archivo SWF de aproximadamente 4 MB), a pesar de la presencia del encabezado Last-Modified.

A veces Chrome obtendrá un código 304 y otras veces simplemente 200 (desde la memoria caché). Entiendo el 304: Chrome probablemente verificará la fecha de Última modificación más reciente con la versión en caché para decidir. Pero otras veces hace el 200 (desde la memoria caché), que no devuelve ninguna información de encabezado y parece que Chrome simplemente está asumiendo que el archivo no se ha modificado en lugar de verificar.

El propio sitio de Google dice el seguimiento

HTTP / S admite el almacenamiento en caché local de recursos estáticos por parte del navegador. Algunos de los navegadores más nuevos (por ejemplo, IE 7, Chrome) usan una heurística para decidir cuánto tiempo almacenar en caché todos los recursos que no tienen encabezados de almacenamiento en caché explícitos.

Pero esto no proporciona una respuesta definitiva. ¿Se publica esta heurística en alguna parte? Me doy cuenta de que puede no haber una respuesta fija (como 30 días), pero algunas pautas generales serían útiles. Además, si se configura Last-Modified, no entiendo por qué Chrome no se molesta en verificar eso primero.

Respuestas a la pregunta(4)

Su respuesta a la pregunta