lundi 4 janvier 2010

Pourquoi ajouter des header "expires" dans htaccess vos .htaccess ?

Tout simplement pour améliorer le chargement de votre site. A chaque visite sur votre site, plusieurs requêtes HTTP sont effectuées pour charger le contenu de votre page. Une requête par image, par fichier CSS et/ou Javascript inclus dans la page... Ajouter une entête "Expires" à ces ressources, va indiquer au navigateur, que cette ressource peut être mise en cache jusqu'à la date que vous spécifiez. Donc une fois les ressources images, javascript, ... mis en cache, le nombre de requête HTTP vers votre serveur devrait diminuer.
Pour ce faire il vous suffit d'ajouter ces petites lignes dans vos .htaccess :
ExpiresActive On
ExpiresDefault "access plus 1 month"
Ces instructions, vont mettre une date d'expiration de 1 mois sur les ressources. 1 mois en plus par rapport à la première date d'accès à la ressource. Bien entendu le mieux est de personnaliser cette date en fonction du type de ressources. Effectivement, on change pas la mécanique tout les jours lorsque ça fonctionne. Par contre la peinture (style, image) peux être amener à changer un plus souvent. On peux donc ajouter en plus des deux ligne ci dessus :
ExpiresByType text/html "access plus 2 hours"
ExpiresByType text/javascript "access plus 2 month"
ExpiresByType image/gif "access plus 5 hours 3 minutes"
Ici je définis la date d'expiration pour les ressources de type HTML à 2 heures, pour les ressources de type javascript à 2 mois et pour les ressources de type images gif à 5 heures et 3 minutes. Les autres type de ressources images jpeg, png auront la date d'expiration par défaut de 1 mois.
Voilà, j'espère que ce petit post vous seras utile.

2 commentaires:

antonycharier a dit…

pourquoi tu le fais pas sur ta page alors?
grade F sous Yslow

Guillaume a dit…

Ton simplement parceque j'ai pas la main sur la configuration du serveur.
Je vais pas m'amuser a créer mon blog de toute pièce, alors que la roue existe déjà ! J'ai préférer prendre une plateforme de blog.

D'autre question ?