Mise en cache
Optimisation du cache navigateur
Nativement, les navigateurs plus ou moins récents mettent les fichiers en cache, afin d'économiser de la bande passante. Par contre, à chaque chargement, il vérifie si le fichier a changé. En indiquant combien de temps le fichier dois rester en cache, on économise un aller-retour serveur-navigateur et la réponse 304 : fichier non changé.
Nous allons donc utiliser les header Expires et Cache-control afin de gérer les dates d'expiration des fichiers.
De cette manière, le navigateur ne demandera plus au serveur si il y a lieu de rafraichir les fichiers pendant un temps défini. Quelque soit votre site, il y a une flopée de fichiers qui ne changent quasiment jamais (thème, images...).
Pour le coup, on met souvent un date d'expiration très lointaine, 1 an ou 2. C'est ce qu'on appelle une Far Future Expire Headers.
Le gain n'est pas négligeable puisque le navigateur obtient ses fichiers plus rapidement et le serveur est moins sollicité.
Mise en place du cache (Apache)
Le plus simple est d'utiliser le mod_expires d'Apache via le .htaccess.
<ifmodule mod_expires.c=""> ExpiresActive on # exemples par type mime ExpiresByType image/jpg "access plus 2 years" ExpiresByType text/css "modification plus 2 years" # exemples par extension <FilesMatch ".(jpg|jpeg|png|gif|swf|js|css|png)$"> Header set Cache-Control "max-age=604800, public" # 1 semaine max-age=604800 # 1 an max-age=29030400 </ifmodule>
Précaution avant de mettre en cache
Versionnez vos fichiers (exemple theme20100101.css). Ainsi, lorsque vous le modifierez et que vous changerez de version, le cache sera rafraichi. Cela implique la mise à jour du code, mais fonctionne parfaitement.