Skip to main content

Cómo configurar la caducidad de la caché con Apache

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.

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

 

Qué es el htaccess de Apache

El fichero .htacess es tan solo un archivo de texto donde podemos poner valores de configuración para el servidor web Apache. En sistemas linux al llevar un punto delante se considera que es un archivo oculto por lo que es normal que al mostrar un listado de archivos del directorio no aparezca.

El servidor Apache toma los valores de .htaccess para el directorio donde se encuentra el archivo que ha de procesar. Por ejemplo si un navegador cliente nos pide un archivo, Apache comprueba el .htaccess del directorio donde está el archivo, encuentra en .htaccess que la ip de ese cliente está listada como a rechazar, consecuentemente Apache no servirá el archivo.

Como .htaccess es un archivo de texto, editarlo para añadir, borrar o modificar reglas del comportamiento de Apache, es muy fácil y podemos hacerlo con cualquier sencillo editor . Los valores de .htaccess se propagan por todos los subdirectorios hasta que otro .htaccess tenga valores que anulen la anterior configuración.

Apache HTTP server

Cómo conocer los módulos de Apache

Si necesitamos saber que módulos tiene activos Apache, el siguiente comando nos ayudará.

Nos mostrará un listado semejante a:

Apache HTTP server