Performance "Add Expires headers"

gotcha5832
WRInaute discret
WRInaute discret
 
Messages: 104
Inscription: 22 Nov 2008

Performance "Add Expires headers"

Message le Mer Nov 24, 2010 15:07

Bonjour à tous,

Voilà je travaille sur la perf de mon site, et plusieurs outils dont Yslow me préconise "Add Expires headers"
Notamment sur mon css.

Sachant que j'uilise combine.php (rakaz.nl/code/combine) afin de rduire le nombre de requete ce qui me permet d'appeler
ndd.com/example/css1.css,css2.css

J'ai donc chercher dans le fameux fichier combine.php
header('Expires: '.date(DATE_RFC822,strtotime("+1 month")));

Ce qui me permet d'avoir un "Expires: Fri, 24 Dec 10 15:05:06 +0100" dans mon header.

Cependant Yslow me dit toujours "Add Expires headers"

Et j'ai le même souci sur un script qui genere des miniature à la volée, qui n'avais d'Expire dans son Header, à qui je l'ai rajouter, et Yslow me dis toujours "Add Expires headers"?

Auriez vous une idée?


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1765
Inscription: 31 Aoû 2007

Re: Performance "Add Expires headers"

Message le Mer Nov 24, 2010 15:25

tu as quoi exactement comme header au complet ? Tu en as peut-être un autre qui bloque.
Perso, j'utilise la date en GMT.
Tu peux tenter aussi un :
Cache-Control: max-age=1296000
d'un mois bien entendu (enfin correspondant à ta durée).
Voilà mon header pour mon site "pro" pour une image :
Code: Tout sélectionner
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Expires: Thu, 09 Dec 2010 14:23:34 GMT
Expires: Thu, 09 Dec 2010 14:23:34 GMT
< Cache-Control: max-age=1296000
Cache-Control: max-age=1296000
< Content-Type: image/x-icon
Content-Type: image/x-icon
< Accept-Ranges: bytes
Accept-Ranges: bytes
< ETag: "3762280382"
ETag: "3762280382"
< Last-Modified: Mon, 21 Jun 2010 11:31:42 GMT
Last-Modified: Mon, 21 Jun 2010 11:31:42 GMT
< Content-Length: 15086
Content-Length: 15086
< Date: Wed, 24 Nov 2010 14:23:34 GMT
Date: Wed, 24 Nov 2010 14:23:34 GMT

gotcha5832
WRInaute discret
WRInaute discret
 
Messages: 104
Inscription: 22 Nov 2008

Re: Performance "Add Expires headers"

Message le Mer Nov 24, 2010 16:06

Je te remercie àprès avoir comparer nos deux header, et une différence m'a sauter au yeux.
Cache-Control: private

Du coup je l'ai passé comme toi et ca semble être bon...

je te remercie.
Tu utilise etag?
car on lit à pas mal d'endroit qu'il faut mieux le faire saute.?


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1765
Inscription: 31 Aoû 2007

Re: Performance "Add Expires headers"

Message le Mer Nov 24, 2010 16:29

etag est plus au norme, mais oblige plus de vérification.
l'Etag est obtenu sur la date de modification du fichier (donc fait doublon avec l'header Last-Modified) (fonction stat généralement de l'OS).
C'est principalement pour défoncer les caches navigateurs qui vérifient "mal" justement.
Si tu dis à un navigateur "j'expire dans 1 mois", le navigateur n'a aucun intérêt d'aller vérifier si ton URL a changé (aussi bien au niveau des headers par exemple).
Enfin bon, c'est pas pareil pour tous les navigateurs, moi c'est principalement parce que je suis un geek que je l'ai rajouté, par défaut lighttpd ne le mets pas ;)


Bigb06
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 496
Inscription: 21 Mar 2007

Re: Performance "Add Expires headers"

Message le Mer Nov 24, 2010 16:32

etag ne sert plus à rien si un expire header est ajouté.

Pour rappel concernant le fonctionnement d'etag :
au premier chargement, le fichier exemple.css est chargé avec un etag égal à 1 (en vérité ce n'est pas 1 mais plutot le md5 du fichier).
à chaque fois que le navigateur a besoin de concat.css (changement de page, rechargement de la page), il va indiquer qu'il possède déjà la version etag 1, si bien que si le fichier concat.css n'a pas changé, le serveur va renvoyer une réponse courte comme quoi le fichier n'a pas changé, au lieu de renvoyer le même fichier. Gros problème des Etags : il génère quand même une (petite) requête à chaque page, et pour chaque fichier déjà en cache dans le navigateur!

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2687
Inscription: 13 Fév 2004

Re: Performance "Add Expires headers"

Message le Mer Nov 24, 2010 22:18

La spec HTTP précise bien que le format de la date doit être en RFC 1123 et forcément en GMT. Tu dois donc utiliser gmdate et pas date, et le format suivant si j'en crois les commentaires dans la doc de gmdate(): 'D, d M Y H:i:s \G\M\T'.

Jacques.

gotcha5832
WRInaute discret
WRInaute discret
 
Messages: 104
Inscription: 22 Nov 2008

Re: Performance "Add Expires headers"

Message le Jeu Nov 25, 2010 2:52

Merci à vous.

Je viens de passer en GMT..

gotcha5832
WRInaute discret
WRInaute discret
 
Messages: 104
Inscription: 22 Nov 2008

Re: Performance "Add Expires headers"

Message le Jeu Nov 25, 2010 2:53

voiçi le résultat
Date: Thu, 25 Nov 2010 01:51:47 GMT
Server: Apache
Expires: Sat, 25 Dec 2010 01:51:47 GMT
Cache-Control: max-age=1296000
Last-Modified: Fri, 22 Oct 2010 08:41:25 GMT
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: image/jpeg


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité