En esta entrada veremos cómo configurar el tiempo de caducidad de un objeto en la caché del navegador del usuario desde la configuración del servidor Apache.
Los navegadores, para reducir la cantidad de datos que descargan del servidor tienen un almacén que llamamos cache donde guardan estos datos. El propósito de guardarlos por el navegador es poder usarlos próximamente. Los datos en caché son típicamente ficheros de imagen aunque pueden ser otros tipos de ficheros, como los mismos html. Los elementos en la caché tiene un tiempo de caducidad que el propio navegador asigna a su consideración.
Así el navegador cuando interpreta una página web y necesita descargar una imagen primero consulta si dispone de ella en la caché. Si está en la caché y no ha caducado todavía la toma de ahí en vez de descargarla de nuevo.
Por el lado del servidor también es importante, ya que de este modo el servidor enviará menos datos reduciendo el ancho de banda empleado y sirviendo la página más rápidamente, y quedando libre para otras tareas. El servidor Apache tiene un mecanismo para informar al navegador que los elementos que envía se guarden en la caché del navegador por un tiempo determinado.
Apache dispone de un módulo llamado expires que se encarga de poner fecha de caducidad a los elementos que el navegador pondrá en caché. Expires se configura mediante los archivos .htaccess y afecta a los archivos del directorio donde se elija y sus subdirectorios.
Para configurar expires debemos añadir al .htaccess una nueva sección para su configuración. Si no existiera el archivo .htaccess lo creamos nuevo.
|
<IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 6 months" ExpiresByType text/css "access plus 2 weeks" ExpiresByType text/javascript "access plus 4 weeks" </IfModule> |
La clave ExpiresActive hace efectiva la configuración del módulo expires. ExpiresDefault configura por defecto todos los tipos de archivo. En el ejemplo vemos que la caducidad es de más de 6 meses. Otra clave que puede usarse ExpiresByType text/css permite configurar para un tipo de archivo específico(en este caso las hojas de estilo css).
Otra forma de especificar el tiempo es indicándolo en segundos ExpiresDefault A86400, donde la A indica Acceso y el número posterior el tiempo, en este caso un día.
Apache