Hemos tenido un problema con el almacenamiento en caché de Chrome de un recurso en nuestro servidor de Glassfish. Los encabezados caducados y sin caché no se envían y el recurso (un archivo SWF de aproximadamente 4 MB) está siendo cacheado por Chrome, a pesar de la presencia del encabezado Last-Modified.¿Durante cuánto tiempo Google Chrome almacena en caché un recurso si caduca y/o no se establecen los encabezados de caché?
A veces, Chrome recibirá un código 304 y otras veces simplemente un 200 (desde el caché). Entiendo que el 304 - Es probable que Chrome esté revisando la fecha más reciente de Last-Modified con la versión en caché para decidir. Pero otras veces hace el 200 (del caché), que no devuelve ninguna información del encabezado y aparece que Chrome simplemente está asumiendo que el archivo no se ha modificado en lugar de verificar.
Google's own site states lo siguiente:
HTTP/S es compatible con el almacenamiento en caché local de los recursos estáticos por el navegador. Algunos de los navegadores más nuevos (por ejemplo, IE 7, Chrome) utilizan una heurística para decidir cuánto tiempo almacenar en caché todos los recursos que no tienen caché explícito encabezados.
Pero esto no proporciona una respuesta definitiva. ¿Está publicada esta heurística en algún lugar? 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 está configurando Last-Modified, no entiendo por qué Chrome no se molesta en verificarlo primero.
Se _es_ publicó en la medida en que la fuente de cromo es de libre disposición. – cdeszaq
hola - ¿Encontraste más información sobre cómo se determina esta heurística? Si la lógica está basada en DEFAULT_CACHE_TIME ¿hay un URI de Chrome en el que se muestre esta configuración? – andrew