it-swarm-es.com

¿Cuáles son las reglas duras y rápidas para el control de caché?

Confesión : los sitios que mantengo tienen diferentes reglas para el Control de caché, basadas principalmente en la configuración predeterminada del servidor, seguidas de las recomendaciones de Velocidad de página & Y-Slow Complementos de Firefox y la vista de Recursos de red en Google Speed ​​Tracer . Cache-Control está configurado como privado/público dependiendo de lo que digan que hagan, los encabezados ETag/Last-Modified solo se modifican si Y-Slow sugiere que hay algo mal y parece que Vary-Accept-Encoding es necesario cuando se borran archivos manualmente 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 culto de carga . Toda la información oficial proporcionada por las herramientas de análisis mencionadas anteriormente es bastante inaccesible, ya que trata cada tema individualmente en lugar de como 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 rígidas y rápidas para una estrategia de control de caché independiente de la plataforma?

EDITAR:

A enlace a través de artículo de Jeff Atwood explica el almacenamiento en caché con gran profundidad.

Para el registro, aquí están las reglas duras y rápidas:

Si el archivo se Comprime usando GZIP, etc. - use "cache-control: private" como un proxy puede devolver la versión comprimida a un cliente que no admitirlo (la memoria caché del navegador contendrá archivos marcados de esta manera). También recuerde incluir un "Vary: Accept-Encoding" para decir que es compresible.

Usar Last-Modified junto con ETag - el uso de cinturón y llaves proporciona ambos validadores, mientras que ETag se basa en el contenido del archivo en lugar del tiempo de modificación solo, usando ambos Cubre 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 FileETag 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.

15
Metalshark

Primero, no se deshaga del ETag como dice Yahoo, a menos que esté utilizando una granja/clúster de servidores. Mientras el mismo archivo siempre devuelva el mismo ETag cuando no ha cambiado, entonces es una directiva muy útil.

En cuanto a otros encabezados, Yahoo (mejores prácticas sugiere establecer un futuro Expires encabezado para archivos estáticos, use Cache-Control para contenido dinámico. Sin embargo, Cache-control está perfectamente bien para contenido estático (prácticamente no hay diferencia entre ellos).

Cuando cambie los archivos estáticos almacenados en caché, deberá cambiar el nombre del archivo o agregar un parámetro único al final, p. example.com/styles.css?v=2. Sin embargo, se prefiere cambiar el nombre de archivo real, como se señala en los comentarios a continuación.

Por cierto, puede editar las reglas de YSlow a su gusto, para eliminar la regla de Etag y agregar su propio dominio como CDN. Este artículo también es una buena lectura: Los problemas de Yahoo no son tus problemas

8
DisgruntledGoat

Cambie los encabezados de solicitud de sus recursos para usar el almacenamiento en caché Para la mayoría de las personas, la forma de almacenar en caché ebable es agregar algún código a un archivo llamado .htaccess en su servidor/servidor web.

Esto significa ir al administrador de archivos (o donde quiera que vaya para agregar o cargar archivos) en su servidor web.

El archivo .htaccess controla muchas cosas importantes para su sitio. Si no está familiarizado con el archivo .htaccess, lea mi artículo sobre cómo trabajar con .htaccess para saber cómo hacerlo antes de cambiarlo.

El siguiente código le dice a los navegadores qué almacenar en caché y por cuánto tiempo "recordarlo". Debe agregarse a la parte superior de su archivo .htaccess.

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>
## EXPIRES CACHING ##

Guarde el archivo .htaccess y luego actualice su página web.

Fuente:
https://varvy.com/pagespeed/leverage-browser-caching.html

0
Nomib Nomib