Date d'expiration au niveau des headers HTTP ?...

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics


cedric_g
WRInaute accro
WRInaute accro
 
Messages: 3552
Inscription: 18 Jan 2006

Date d'expiration au niveau des headers HTTP ?...

Message le Jeu Juil 16, 2009 14:15

Bonjour


Je suis en train de travailler l'optimisation des perfs d'un site, et des outils comme PageSpeed ou encore YSlow me disent pour certains fichiers, "d'indiquer une date d'expiration de cache" (comme expliqué ici).

(typiquement fichiers JS, CSS et images)

On fait ça comment ? Ces fichiers renvoient un code HTTP 304 au lieu de l'habituel 200, d'après ce que j'ai pu lire ici ou là ce n'est pas anormal, mais cela fausse les mesures des outils de perfs (ils ne considèrent plus ces fichiers comme cachables par les navigateurs, ce qui est semble-t-il quand même le cas)

À noter que j'ai eu le soucis sur un fichier CSS qui était en code 200 ; je l'ai "compressé" et depuis il est en 304 :?: (relation de cause à effet ?)

Un bon lien pour m'expliquer comment ça fonctionne ?


Merci

dmathieu
Modérateur
Modérateur
 
Messages: 7244
Inscription: 9 Jan 2004

Re: Date d'expiration au niveau des headers HTTP ?...

Message le Jeu Juil 16, 2009 15:22

Un lien, non. Mais le 304 est normal. C'est l'entête http "Not Modified".
Du coup le navigateur ne récupère que cette entête, s'arrête et prends les données qu'il a en cache.

L'idée est de définir une date d'expiration du cache à une date fortement éloignée dans le future (2040 par exemple).
Tout en placant un paramètre dans l'url du css.
/css/ma_css.css?1234567890
C'est ce paramètre dans l'url que tu change à chaque fois que tu modifie le contenu de ta css. Généralement, on y mets la date unix de dernière modification.

Tous les frameworks corrects gèrent cela en natif.

Genesys
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 32
Inscription: 2 Mar 2004

Re: Date d'expiration au niveau des headers HTTP ?...

Message le Jeu Juil 16, 2009 16:55

Exemple de mise en cache des CSS et JS pour 1 an (à placer dans un htaccess ou directement dans le fichier de config Apache) :

Code: Tout sélectionner
<IfModule mod_headers.c>
  <FilesMatch "\.(js|css)$">
    Header set Cache-Control "max-age=31536000"
  </FilesMatch>
</IfModule>


kazhar a écrit:Tout en placant un paramètre dans l'url du css.
/css/ma_css.css?1234567890


Pour tenir compte du comportement parfois inattendu des proxies, préférer :
/css/ma_css_1234567890.css
Dernière édition par Genesys le Jeu Juil 16, 2009 17:16, édité 1 fois.


cedric_g
WRInaute accro
WRInaute accro
 
Messages: 3552
Inscription: 18 Jan 2006

Re: Date d'expiration au niveau des headers HTTP ?...

Message le Jeu Juil 16, 2009 17:13

Ahhhhh cool !

Merki :)


forty
WRInaute passionné
WRInaute passionné
 
Messages: 1701
Inscription: 30 Oct 2008

Re: Date d'expiration au niveau des headers HTTP ?...

Message le Ven Juil 17, 2009 7:54

il y a aussi cette solution :
Code: Tout sélectionner
#expiration des pages
ExpiresActive On
ExpiresByType text/css "access plus 10 years"
ExpiresByType application/javascript "access plus 10 years"


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

Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

  • Analyse de l'entête HTTP
    Cet outil vous permet de connaître le code HTTP renvoyé par le serveur pour une page donnée.
  • Tester le type de redirection
    Cet outil vous permet de tester la validité d'un lien pour le référencement. Il vous indique la nature du lien (lien en dur, redirection bien gérée par les moteurs ou redirection mal gérée par les moteurs).
  • Tester l'indexation récente d'un site dans Google
    Cet outil vous permet de connaître une estimation de l'ancienneté d'un site : il fournit la date à laquelle Google l'a indexé la première fois (et la même chose pour archive.org).


Qui est en ligne

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