1000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Usar encabezados para optimizar el almacenamiento en caché de recursos
Esta guía cubre los encabezados HTTP utilizados para optimizar el almacenamiento en caché de recursos y verificar si un recurso ha sido modificado desde la última vez que fue recuperado por un cliente. El uso de estos encabezados ayuda a ahorrar ancho de banda y acelerar la carga de las páginas al evitar reenviar recursos estáticos que no han cambiado.
Uso del encabezado Expires
Configura los encabezados de caché utilizando las directivas del módulo mod_expires
en el archivo .htaccess
en la raíz de tu directorio del sitio (por ejemplo, /web
o /sites/domain.xyz
):
- Abre o crea el archivo
.htaccess
en la raíz. Introduce el siguiente código:
<IfModule mod_expires.c>
Luego introduce tus comandos, por ejemplo:
ExpiresActive On ExpiresByType text/html "access plus 1 week" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType text/css "access plus 1 month" ExpiresByType application/javascript "access plus 1 month"
- Estas directivas definen el período de validez de recursos específicos; en este ejemplo:
- Los archivos HTML se almacenan en caché durante una semana
- Las imágenes JPEG, los archivos CSS y los archivos JavaScript se almacenan en caché durante un mes
- Puedes ajustar estos valores según tus necesidades
- Estas directivas definen el período de validez de recursos específicos; en este ejemplo:
Finaliza la adición con la etiqueta de cierre:
</IfModule>
- Guarda el archivo
.htaccess
.
Uso del encabezado If-Modified-Since
El encabezado HTTP If-Modified-Since
es utilizado por los clientes para verificar si un recurso ha sido modificado desde la última vez que fue recuperado. Si el recurso no ha cambiado, el servidor puede responder con un código de estado 304 Not Modified
, evitando reenviar el recurso completo. Esto ayuda a reducir el ancho de banda y acelerar la carga de las páginas.
Para aprovechar el encabezado If-Modified-Since
en tu servidor:
Asegúrate de que tu servidor web esté configurado para enviar el encabezado
Last-Modified
cuando se sirva un recurso; por ejemplo, con Apache, esto se puede hacer a través del módulomod_headers
:<IfModule mod_headers.c> Header set Last-Modified "expr=%{NOW}" </IfModule>
Cuando el cliente realice una solicitud posterior para el mismo recurso, incluirá el encabezado
If-Modified-Since
con la fecha de la última modificación conocida:GET /resource HTTP/1.1 Host: www.example.com If-Modified-Since: Wed, 21 Oct 2015 07:28:00 GMT
El servidor compara entonces la fecha del encabezado
If-Modified-Since
con la fecha de la última modificación del recurso; si el recurso no ha sido modificado desde esa fecha, el servidor devuelve una respuesta304 Not Modified
:HTTP/1.1 304 Not Modified
- De lo contrario, el servidor devuelve el recurso actualizado con un código de estado
200 OK
.
Al combinar los encabezados Expires
y If-Modified-Since
, puedes optimizar de manera efectiva el almacenamiento en caché y la verificación de modificaciones de tus recursos, ofreciendo un mejor rendimiento a tus usuarios.