16mar/110

[Optimisation] Configurer l’en-tête Expires

apache1

Afin de ne pas surcharger inutilement Apache avec des contenus statiques (images, JavaScript, feuilles de style, ...) à chaque chargement de page d'un visiteur, il est intéressant d'envoyer une durée de validité au navigateur client afin de solliciter son cache interne, ce qui nous donne un gain en nombre de hits et en bande passante. Par définition un contenu statique n'est pas fait pour être changé régulièrement, donc nous pouvons mettre une durée de validité très importante. Pour le visiteur l'accélération de la page peut être notable.

L'activation du module se fait en une seule ligne de commande pour de bons résultats, il faut bien sûr recharger Apache pour la prise en compte :

a2enmod expires
/etc/init.d/apache2 reload

Il ne reste plus qu'à configurer les durées, soit en l'appliquant à tous les sites du serveur dans un fichier de configuration de type /etc/apache2/conf.d/expires (il ne faut pas oublier de recharger Apache après chaque modification) ou directement dans le .htaccess à la racine du/des site(s), je préfère la deuxième solution, sans doute par habitude.

<ifmodule mod_expires.c>
        <filesmatch "\.(jpg|gif|png|pdf|css|js|ico)$">
                ExpiresActive On
                ExpiresDefault "access plus 2 months"
        </filesmatch>
</ifmodule>

Tous les fichiers avec les extensions listés expirent dans 2 mois après leur premier téléchargement. Nous pouvons constater l'ajout de l'en-tête du fichier à l'aide d'extension Firefox comme Firebug ou Web Developer. La notation dans Page Speed et/ou YSlow doit normalement s'améliorer.

Le point négatif est que si vous changez le fichier statique comme une modification d'image par exemple, vous ne pouvez pas demander à vos visiteurs de faire un Ctrl+F5, il ne reste plus qu'à changer le nom du fichier pour forcer le téléchargement de celui-ci. Pour le JavaScript ou les feuilles de style, nous pouvons utiliser un paramètre comme la version du fichier, comme je préfère automatiser au maximum mon paramètre est le timestamp du fichier, c'est simple et rudement efficace.

Taggé comme: ,

Faites un lien vers cette news sur votre site

Commentaires (0)

Aucun commentaire pour l'instant


Laisser un commentaire