caching - htaccess - aprovechar el almacenamiento en caché del navegador: caduca o max-age, last-modified o etag
htaccess cache (1)
Tengo dificultades para encontrar una explicación clara y práctica de cuál es la forma correcta de aprovechar el almacenamiento en caché del navegador para aumentar la velocidad de la página.
De acuerdo con este sitio :
Es importante especificar uno de Expira o Cache-Control max-age, y uno de Last-Modified o ETag, para todos los recursos cacheables. Es redundante especificar Caducidad y Control de caché: max-age, o para especificar Last-Modified y ETag.
¿Es esto correcto? Si es así, ¿debería usar Expires
o max-age
? Creo que tengo una comprensión general de lo que ambos son, pero no sé, que generalmente es mejor usar.
Si también tengo que hacer Last-Modified
o ETag
, ¿cuál de esos? Creo que me dieron Last-Modified
pero todavía estoy muy borroso con este concepto de ETag
.
Además, ¿para qué archivos debo habilitar el almacenamiento en caché del navegador?
¿Es esto correcto?
Sí, expira y max-age hacen lo mismo, pero de dos maneras diferentes. Lo mismo con Last-Modified y Etag
De ser así, ¿debería hacerlo caducar o alcanzar el máximo de edad?
Expira depende de la precisión del reloj del usuario, por lo que es una mala elección (ya que la mayoría de los navegadores son compatibles con HTTP / 1.1). Use max-age para indicarle al navegador que el archivo es bueno durante tantos segundos. Por ejemplo, un caché de 1 día sería:
Cache-Control: max-age = 86400
Tenga en cuenta que cuando tanto Cache-Control
como Expires
están presentes, Cache-Control
tiene prioridad. read
Si también tengo que hacer Last-Modified o ETag, ¿cuál de esos? Creo que me dieron Last-Modified
Tienes razón, Last-Modified debería ser mejor. Aunque es un momento, es enviado por el servidor. Por lo tanto, no hay problema con el reloj del usuario. El navegador envía el último modificado el servidor enviado la última vez que solicitó el archivo, y si es el mismo, el servidor responde con una respuesta vacía «304 no modificado»
Además, ¿para qué archivos debo habilitar el almacenamiento en caché del navegador?
Todos los archivos pueden beneficiar el almacenamiento en caché. Tienes dos enfoques diferentes:
- con max-age: útil para archivos que nunca cambian (imágenes, CSS, javascript). Durante el tiempo que el valor máximo de la edad, el navegador no enviará ninguna solicitud al servidor. Entonces verá que la página se carga muy rápido en la segunda carga. Si necesita actualizar archivos, solo agregue un signo de interrogación y la fecha de cambio (por ejemplo /image.png?20110602, o para un mejor almacenamiento en memoria caché de los proxies, algo como /20110602/image.png o /image.20110602.png) . De esta forma puede hacer que los archivos caduquen si es urgente (recuerde que el navegador casi nunca llega al servidor una vez que tiene un archivo de edad máxima). El uso principal es acelerar las cosas y limitar las solicitudes enviadas al servidor.
- con Last-Modified: se puede configurar en todos los archivos (incluidos aquellos con edad máxima). Incluso si tiene páginas dinámicas, no puede cambiar el contenido del archivo durante un tiempo (incluso si es 10 minutos), por lo que podría ser útil. El uso principal aquí es decirle al navegador «sigue pidiéndome este archivo, si es nuevo, te enviaré el nuevo». Por lo tanto, se envía una solicitud para cada carga de página, pero la respuesta está vacía si el archivo ya está en buen estado (304 no modificado), por lo que ahorra ancho de banda.
Cuanto más caché, más rápido aparecerán sus páginas. Pero es una tarea difícil limpiar los cachés, por lo que debe usarse con cuidado.
Un buen lugar para aprender todo esto con muchas explicaciones: http://www.mnot.net/cache_docs/