Confesión : los sitios que mantengo tienen diferentes reglas para el Control de caché, principalmente basadas en la configuración predeterminada del servidor, seguidas de recomendaciones de los complementos Page Speed & Y-Slow Firefox y la vista Recursos de red en Speed Tracer de Google . Cache-Control está configurado como privado / público dependiendo de lo que digan que hacer, los encabezados de ETag / Last-Modified solo se modifican si Y-Slow sugiere que hay algo mal y parece que Vary-Accept-Encoding es necesario cuando gzipea manualmente archivos para Amazon CloudFront.
Al leer el material sobre las diferentes opciones y lo que hacen, parece haber información contradictoria, reglas para proxies rotos y configuraciones de culto de carga . Cualquier información oficial proporcionada por las herramientas de análisis mencionadas anteriormente es bastante inaccesible ya que trata cada tema individualmente en lugar de una estrategia unificada (por lo que no hay referencias cruzadas de técnicas).
Por ejemplo, parece no tener sentido que las herramientas de análisis de velocidad califiquen un sitio con ETag como un sitio sin ellos si están destinados a ayudar con el almacenamiento en caché.
¿Cuáles son las reglas estrictas y rápidas para una estrategia de control de caché independiente de la plataforma?
EDITAR:
Un enlace a través del artículo de Jeff Atwood explica el almacenamiento en caché con una profundidad excelente.
Para el registro, aunque aquí están las reglas duras y rápidas:
Si el archivo se Comprime usando GZIP, etc. - use "cache-control: private" ya que un proxy puede devolver la versión comprimida a un cliente que no lo admite (la memoria caché del navegador contendrá los archivos marcados de esta manera). También recuerde incluir un "Vary: Accept-Encoding" para decir que es compresible.
Use Last-Modified junto con ETag : el uso de correas y brackets proporciona ambos validadores, mientras que ETag se basa en el contenido del archivo en lugar del tiempo de modificación solo, usando ambas cubiertas en todas las bases. NOTA: PageTest de AOL tiene un enfoque de carta blanca contra ETags por alguna razón. Si está utilizando Apache en más de un servidor para alojar el mismo contenido, elimine el inodo declarado implícitamente de ETags excluyéndolo de la directiva FileETag (es decir, "Tamaño de Fileimet MTime") a menos que esté realmente utilizando el mismo sistema de archivos en vivo.
Utilice "control de caché: público" siempre que pueda ; esto significa que los servidores proxy (y el caché del navegador) devolverán su contenido incluso si el resto de la página necesita autenticación HTTP, etc.