1 000 FAQ, 500 tutoriels et vidéos explicatives. Ici, il n'y a que des solutions !
Utiliser des en-tĂŞtes pour optimiser la mise en cache des ressources
Ce guide explique comment optimiser la mise en cache des ressources web grâce aux en-têtes HTTP.
Préambule
- Une bonne stratégie de cache permet d'améliorer significativement les performances de votre site en évitant de retransmettre inutilement des fichiers inchangés.
- La mise en cache web repose sur deux mécanismes complémentaires :
- La durée de validité du cache (via l'en-tête
Expires
) qui indique combien de temps une ressource peut être réutilisée sans contacter le serveur. - La validation conditionnelle (via les en-têtes
Last-Modified
/If-Modified-Since
) qui permet de vérifier si une ressource a changé avant de la retélécharger.
- La durée de validité du cache (via l'en-tête
Configuration de la durée de cache avec Expires
L'en-tĂŞte Expires
permet de spécifier une durée pendant laquelle le navigateur peut réutiliser directement les ressources depuis son cache local. Voici comment le configurer dans votre fichier .htaccess
:
- Créez ou ouvrez le fichier
.htaccess
à la racine de votre site (généralement dans/web
ou/sites/domain.xyz
). Ajoutez la configuration du module
expires
:<IfModule mod_expires.c>
Définissez les durées de cache appropriées pour chaque type de ressource :
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"
Ces directives signifient que :
- Les pages HTML seront conservées en cache pendant une semaine.
- Les images JPEG, fichiers CSS et JavaScript seront gardés pendant un mois.
Adaptez ces durées selon la fréquence de mise à jour de vos ressources.
Fermez la section de configuration :
</IfModule>
Validation conditionnelle avec Last-Modified
Même lorsqu'une ressource a expiré dans le cache, il n'est pas toujours nécessaire de la retélécharger complètement. Le mécanisme de validation conditionnelle permet au navigateur de vérifier si sa version en cache est toujours à jour. Ce processus fonctionne ainsi :
- Le serveur envoie automatiquement un en-tĂŞte
Last-Modified
avec chaque ressource, indiquant sa date de dernière modification.- Apache gère cela nativement pour les fichiers statiques - aucune configuration supplémentaire n'est nécessaire.
Lorsque le navigateur demande Ă nouveau la ressource, il envoie un en-tĂŞte
If-Modified-Since
contenant la date qu'il a en cache :GET /resource HTTP/1.1 Host: www.example.com If-Modified-Since: Wed, 21 Oct 2015 07:28:00 GMT
- Le serveur compare cette date avec la date réelle de modification du fichier :
- Si le fichier n'a pas changé, il renvoie simplement un code
304 Not Modified
, économisant ainsi de la bande passante. - Si le fichier a été modifié, il renvoie la nouvelle version avec un code
200 OK
.
- Si le fichier n'a pas changé, il renvoie simplement un code