Hemos tenido un problema con Chrome almacenamiento en caché de un recurso en nuestro servidor Glassfish. La caduca y no-cache encabezados no están siendo enviados y de los recursos (aproximadamente 4 MB de un archivo SWF) se almacena en la caché de Chrome, a pesar de la presencia de la Última Modificación del encabezado.

A veces Chrome obtener un 304 del código, y otras veces simplemente hace 200 (desde la caché). Entiendo que el 304 — Chrome es probable que la comprobación de la más reciente de la Última fecha de Modificación con la versión en caché para decidir. Pero otras veces lo hace el 200 (de caché), que no devuelve ninguna información de encabezado y parece que Chrome es simplemente suponiendo que el archivo no ha sido modificado, en lugar de comprobar.

Google sitio propio de los estados los siguientes:

HTTP/S es compatible con el almacenamiento en caché local de los recursos estáticos por el navegador. Algunos
de los más recientes de los navegadores (por ejemplo, IE 7, Chrome) utilizar un método heurístico para decidir
cuánto tiempo de la caché de todos los recursos que no han explícito de almacenamiento en caché
los encabezados.

Pero esto no proporciona una respuesta definitiva. Es esta heurística publicado en cualquier lugar? Me doy cuenta de que no puede haber una respuesta fija (como los 30 días), pero algunas pautas generales, sería útil. Además, si de Última Modificación se establece, no entiendo por qué Chrome no se molesta en comprobar que la primera.

  • Es publicado en la medida en que Chrome fuente está disponible libremente.
  • hi – ¿usted encontrar más información acerca de cómo esta heurística se determina? Si la lógica es, de hecho, basado en DEFAULT_CACHE_TIME hay un Cromo de URI donde este ajuste se muestra?
InformationsquelleAutor sean | 2012-03-16

2 Comentarios

  1. 11

    DEFAULT_CACHE_TIME = 300

    Me encontré con la anterior mediante la búsqueda en http://code.google.com/p/chromium/source/search?q=DEFAULT_CACHE_TIME&origq=DEFAULT_CACHE_TIME&btnG=Search+Trunk para «DEFAULT_CACHE_TIME».

    Hay un archivo llamado «chromeextensionsdocs.py» que contiene el DEFAULT_CACHE_TIME.

    Yo creo esto es lo segundos que se basa en el ejemplo dado en http://code.google.com/appengine/docs/python/memcache/overview.html

    En «chromeextensionsdocs.py» el DEFAULT_CACHE_TIME es enviado como el último parámetro en memcache.add

    No estoy totalmente seguro de si este es el valor correcto o no, pero parece probable que es hora de poner las piezas juntas.

    • No tengo ningún conocimiento especial de este tema, aparte de la lectura de algunos artículos de la línea. DEFAULT_CACHE_TIME podría ser la predeterminada para la memoria caché, pero supuestamente Chrome tiene varias cachés, uno de los cuales está basado en disco. Me imagino a un archivo expirará en la memoria caché después de 5 minutos, pero es potencialmente en la caché de disco por mucho tiempo. Este artículo proporciona información sobre la forma de IE9 determina cuando la política de caché de-menos archivos caducan.
    • La unidad de «300» es el día ? horas ? segundos ?
    • Véase la respuesta – «creo que esto es cuestión de segundos, basada en…»
    • He visto los recursos con los encabezados de caché falta ser almacenados en memoria caché en Cromos de la caché de disco durante semanas.
  2. 8

    La vez que el navegador considera una respuesta en caché fresco es generalmente en relación a cuando se realizó la última modificación:

    Desde los servidores de origen no siempre son explícitos los tiempos de vencimiento, una memoria caché PUEDE asignar una heurística tiempo de caducidad cuando un explícito de tiempo no es especificado, el empleo de algoritmos que utilizan otro campo de encabezado de valores (tales como la hora de Última Modificación)… Si la respuesta tiene un Modificó por Última campo de encabezado (Sección 2.2 de [RFC7232]), se almacena en caché se les anima a utilizar una heurística de vencimiento valor que no es más que una fracción del tiempo transcurrido desde ese momento. Una configuración típica de esta fracción puede ser de 10%. [https://tools.ietf.org/html/rfc7234#section-4.2.2%5D

    Los detalles de cómo Chrome (y otros navegadores) calcular el valor, se puede encontrar en el código fuente (Un ejemplo de Chrome v49). Parece que Chrome también calcula el valor relativo de la Última Modificación del encabezado.

    (Crédito a este post)

    • Lo que si no es de Última Modificación de cabecera?
    • Va a depender del navegador, creo. El código de ejemplo he notado desde Chrome cae de nuevo en ‘max_age_value’ y Caduca de cabecera, creo que…

Dejar respuesta

Please enter your comment!
Please enter your name here