Différence entre "last-modified" et "if-modified-since"
21 messages
• Page 1 sur 2 • 1, 2
Consultez la formation au REFERENCEMENT naturel Google de WebRankInfo / Ranking Metrics
- dedein84
- Nouveau WRInaute

- Messages: 8
- Inscription: 29 Sep 2010
Différence entre "last-modified" et "if-modified-since"
Bonjour,
Je suis en train de revisiter le référencement sur mon site , j'ai une question concernant la différence entre "last-modified" et "if-modified-since" ?
Lequel est le plus performant pour Google et pour mon site?
Merci pour vos réponses
Cordialement,
André
Je suis en train de revisiter le référencement sur mon site , j'ai une question concernant la différence entre "last-modified" et "if-modified-since" ?
Lequel est le plus performant pour Google et pour mon site?
Merci pour vos réponses
Cordialement,
André
- jcaron
- WRInaute accro

- Messages: 2685
- Inscription: 13 Fév 2004
Re: Différence entre "last-modified" et "if-modified-since"
Last-Modified est envoyé du serveur au client. If-Modified-Since est envoyé du client au serveur (qui répondra en général par un 200 avec le contenu si ça a changé, ou par un 304 sans contenu s'il n'a pas changé).
Jacques.
Jacques.
- lambi521
- WRInaute impliqué

- Messages: 782
- Inscription: 15 Juin 2010
Re: Différence entre "last-modified" et "if-modified-since"
Toi tu mets last modified avec une datte, et le client qui vient visiter ton site envoie if modified since à ton serveur. Si ta datte est plus récente que la date du cache du client, il retélécharge la page sinon il affiche son cache. Moi j'ai pas cet header c'est grave ?
- dedein84
- Nouveau WRInaute

- Messages: 8
- Inscription: 29 Sep 2010
Re: Différence entre "last-modified" et "if-modified-since"
J'ai trouver un article très intéressant.
http://www.abricocotier.fr/10948-status-http-304-bande-passante-diminu ... le-bot-seo
En gros last modified permet d’alléger sa bande passante et permet à google d'aller voir d'autre page non indexé.
http://www.abricocotier.fr/10948-status-http-304-bande-passante-diminu ... le-bot-seo
En gros last modified permet d’alléger sa bande passante et permet à google d'aller voir d'autre page non indexé.
- lambi521
- WRInaute impliqué

- Messages: 782
- Inscription: 15 Juin 2010
Re: Différence entre "last-modified" et "if-modified-since"
Oui je viens de lire un article similaire (merci de m'avoir mis sur la voie) Je pense que cela est bon pour Google, d'ailleurs c'est précisé dans les conseils aux webmasters, je n'avais pas vu. Comme je n'avais pas cet entête, je pense que Google visitait plusieurs fois les mêmes URLs et donc perdait du temps au lieu d'en crawler d'autre.
- jcaron
- WRInaute accro

- Messages: 2685
- Inscription: 13 Fév 2004
Re: Différence entre "last-modified" et "if-modified-since"
Last-Modified n'est pas vraiment fondamental (Expires ou Cache-Control sont nettement plus utiles), mais en l'absence de ces derniers, ça permet de donner une indication sur la fréquence de mise à jour d'un fichier, et donc de décider quand il faut retourner voir s'il a changé.
Maintenant, que le serveur connaisse la date de dernière modification (qui est donc celle envoyée dans Last-Modified) est nécessaire pour la gestion de If-Modified-Since, qui va permettre de renvoyer un 304 si le fichier n'a pas changé (et donc de ne pas renvoyer le fichier, ce qui économise de la bande passante et du boulot pour toi et les moteurs, et accélère le chargement pour les utilisateurs).
Sur des fichiers statiques (pages html, fichiers JS, CSS, images, etc.), un serveur http va généralement faire tout ça tout seul pour toi, donc tu n'as rien à faire.
Pour tout ce qui est dynamique (php, etc.), c'est plus compliqué, donc il faut en général le gérer soi-même dans son script (en récupérant HTTP_IF_MODIFIED_SINCE et en le comparant à la date de dernière modification du contenu qui va être renvoyé -- ce qui peut être plus ou moins évident à calculer: pour un blog par exemple, il ne s'agit pas forcément juste de la date du post, puisqu'il y a tout un tas de contenu "autour" qui peut changer par la suite).
Je ne suis pas sûr qu'envoyer Last-Modified soit vraiment très utile, par contre des headers Expires/Cache-Control sont appréciés (il permettent eux aussi de gagner en performances, un navigateur qui a déjà le fichier en cache ne fera même pas une requête avec un If-Modified-Since).
Jacques.
Maintenant, que le serveur connaisse la date de dernière modification (qui est donc celle envoyée dans Last-Modified) est nécessaire pour la gestion de If-Modified-Since, qui va permettre de renvoyer un 304 si le fichier n'a pas changé (et donc de ne pas renvoyer le fichier, ce qui économise de la bande passante et du boulot pour toi et les moteurs, et accélère le chargement pour les utilisateurs).
Sur des fichiers statiques (pages html, fichiers JS, CSS, images, etc.), un serveur http va généralement faire tout ça tout seul pour toi, donc tu n'as rien à faire.
Pour tout ce qui est dynamique (php, etc.), c'est plus compliqué, donc il faut en général le gérer soi-même dans son script (en récupérant HTTP_IF_MODIFIED_SINCE et en le comparant à la date de dernière modification du contenu qui va être renvoyé -- ce qui peut être plus ou moins évident à calculer: pour un blog par exemple, il ne s'agit pas forcément juste de la date du post, puisqu'il y a tout un tas de contenu "autour" qui peut changer par la suite).
Je ne suis pas sûr qu'envoyer Last-Modified soit vraiment très utile, par contre des headers Expires/Cache-Control sont appréciés (il permettent eux aussi de gagner en performances, un navigateur qui a déjà le fichier en cache ne fera même pas une requête avec un If-Modified-Since).
Jacques.
- lambi521
- WRInaute impliqué

- Messages: 782
- Inscription: 15 Juin 2010
Re: Différence entre "last-modified" et "if-modified-since"
Moi j'ai ça en entête est-ce que c'est bon ?
- Code: Tout sélectionner
Date: Thu, 30 Sep 2010 12:58:36 GMT
Server: Apache/2.0.52 (CentOS)
X-Powered-By: PHP/4.3.9
Expires: Sun, 25 Sep 2011 20:00:00 GMT
Cache-Control: max-age=1209600, public
Content-Encoding: gzip
Vary: Accept-Encoding
Last-Modified: Sun, 26 Sep 2010 20:00:00 GMT
Content-Length: 7005
Content-Type: text/html
200 OK
- jcaron
- WRInaute accro

- Messages: 2685
- Inscription: 13 Fév 2004
Re: Différence entre "last-modified" et "if-modified-since"
Si le but du jeu est de dire que cette page ne changera pas pour un bon moment, et qu'un cache peut servir cette même page à tout le monde, oui. Je suis cependant un peu surpris par le fait que le max-age (14 jours) et le Expires (presque un an) ne correspondent pas vraiment...
Note que ça ne veut pas forcément dire que If-Modified-Since est géré correctement.
De façon générale, de nos jours, très souvent les pages html dynamiquement générées ne peuvent pas être mises en cache (via un Expires très court ou un Cache-Control: no-cache par exemple) parce qu'elles sont fortement personnalisées (en fonction de cookies de l'utilisateur par exemple) et actualisées (avec des éléments comme les derniers messages, le nombre de connectés, etc.). Au contraire, les fichiers "statiques" tels que les images, CSS, JS, etc. doivent avoir une expiration la plus longue possible (ce qui implique que si on veut modifier le fichier, on en crée en fait une nouvelle version avec un nouveau nom, et on référence ce nouveau nom dans les pages dynamiques).
Mais à chacun son cas particulier...
Jacques.
Note que ça ne veut pas forcément dire que If-Modified-Since est géré correctement.
De façon générale, de nos jours, très souvent les pages html dynamiquement générées ne peuvent pas être mises en cache (via un Expires très court ou un Cache-Control: no-cache par exemple) parce qu'elles sont fortement personnalisées (en fonction de cookies de l'utilisateur par exemple) et actualisées (avec des éléments comme les derniers messages, le nombre de connectés, etc.). Au contraire, les fichiers "statiques" tels que les images, CSS, JS, etc. doivent avoir une expiration la plus longue possible (ce qui implique que si on veut modifier le fichier, on en crée en fait une nouvelle version avec un nouveau nom, et on référence ce nouveau nom dans les pages dynamiques).
Mais à chacun son cas particulier...
Jacques.
- lambi521
- WRInaute impliqué

- Messages: 782
- Inscription: 15 Juin 2010
Re: Différence entre "last-modified" et "if-modified-since"
Effectivement ce sont des fausses pages html gérées dynamiquement, j'avais mis ces entête en espérant amélioré le référencement. Il y a des parties gérées par le cookie pour le panier, la connexion etc, il faut donc que je ne mete pas en cache ces pages ? Car dans les conseils aux webmasters Google il y a écrit de vérifier que le serveur accepte bien If-modified-since. Si j'enleve mes règles dans mon htacces j'ai ceci sur mes fiches produit:
C'est bon pour Google ou pas ? Je peux laissé tel quel ?
Avec l'audit Google Chrome il me dit ceci:
Pourtant j'ai bien ceci dans mon htacces à la racine:
Merci de ton aide
- Code: Tout sélectionner
Date: Thu, 30 Sep 2010 14:59:55 GMT
Server: Apache/2.0.52 (CentOS)
X-Powered-By: PHP/4.3.9
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Encoding: gzip
Vary: Accept-Encoding
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html
200 OK
C'est bon pour Google ou pas ? Je peux laissé tel quel ?
Avec l'audit Google Chrome il me dit ceci:
The following resources are missing a cache expiration. Resources that do not specify an expiration may not be cached by browsers:
pub1.png
pub2.png
pub3.png
pub4.png
bg.png
maintablebg.jpg
pixel_trans.gif
pointer_blue.gif
pointer_blue_light.gif
Pourtant j'ai bien ceci dans mon htacces à la racine:
- Code: Tout sélectionner
<FilesMatch ".(js|ico|jpg|png|gif|css|pdf|txt|html)$">
Header set Cache-Control "max-age=1209600, public"
Header set Expires "Sun, 25 Sep 2011 20:00:00 GMT"
Header set ExpiresDefault "access plus 14 days"
Header set Last-Modified "Sun, 26 Sep 2010 20:00:00 GMT"
Header unset Pragma
</FilesMatch>
Merci de ton aide
- dedein84
- Nouveau WRInaute

- Messages: 8
- Inscription: 29 Sep 2010
Re: Différence entre "last-modified" et "if-modified-since"
Jacques, je vous remercie pour votre aide.
Elle m'a été grandement utile dans l'utilisation des ces variables header.
Je vais suivre ton conseille et a m'atteler plus à mon cache.
Merci encore.
André
Elle m'a été grandement utile dans l'utilisation des ces variables header.
Je vais suivre ton conseille et a m'atteler plus à mon cache.
Merci encore.
André
- jcaron
- WRInaute accro

- Messages: 2685
- Inscription: 13 Fév 2004
Re: Différence entre "last-modified" et "if-modified-since"
Oui, pour une page dynamique de ce type, mettre des Expires et Cache-control: max-age longs c'est contre-productif. Ca veut même dire que si le client revient sur la même page après avoir (par exemple) ajouté un produit à son panier, il ne le verra pas, puisque la page ne sera pas rechargée! Et pire encore, un utilisateur qui partagerait le même cache (via un proxy comme chez AOL par exemple) pourrait voir le contenu du panier de l'autre utilisateur!
En général, on fait donc tout le contraire sur ce genre de page: on met un Expires dans le passé, et un Cache-Control: no-cache, comme ça le navigateur va venir récupérer la page à chaque fois (ou au moins demander si elle a changé). C'est ce que tu obtiens maintenant.
Le If-Modified-Since doit être géré (explicitement) côté serveur, il ne suffit pas de mettre un Last-Modified ou un Expires pour que ça marche tout seul. Mais sur une page dynamique comme celle-ci, de toutes façons, tu peux presque toujours considérer que la page aura changé.
(évidemment dans certains cas on peut faire des stratégies plus complexes, avec des pages relativement statiques pour Google et des pages dynamiques pour les autres, mais c'est essentiellement pour des raisons de charge sur tes serveurs, et tu peux vite t'emmêler les pinceaux si tu ne maîtrises pas tout ça).
A l'opposé, les fichiers statiques doivent effectivement être mis en cache le plus possible. Plutôt que de mettre toutes sortes de headers "en dur" (que tu oublieras de modifier dans un an quand il expireront), je te conseille plutôt quelque chose du genre:
ExpiresActive On
ExpiresDefault "access plus 7 days"
ExpiresByType image/gif "access plus 10 years"
ExpiresByType image/png "access plus 10 years"
ExpiresByType image/jpg "access plus 10 years"
etc.
(tu as besoin de mod_expires).
Le Last-Modified sera fourni spontanément par Apache, qui gèrera aussi automatiquement If-Modified-Since pour les fichiers statiques.
Deux exemples détaillés:
Premier exemple: fichier dynamique, généré en php, avec plein de choses qui changent tout le temps (produits, panier, etc.):
Première requete:
- le client n'est jamais venu sur la page, il fait donc une requête normale
- le serveur répond avec:
Expires: (date dans le passé)
Cache-control: no-cache
- le client affiche la page, et note qu'il ne doit pas la mettre en cache
Deuxième requête pour la même page:
- le client est déjà venu, mais il n'a rien mis en cache, il faut donc une requête normale de nouveau
- le reste idem
Deuxième exemple: fichier statique
Première requête:
- le client n'est jamais venu sur la page, il fait donc une requête normale
- le serveur répond avec:
Expires: (loin dans le futur)
Cache-control: max-age=beaucoup
- le client affiche la page, et note qu'il peut la mettre en cache, avec son expiration, et la date de la requête
Deuxième requête (même fichier, dans une autre page par exemple)
- le client a déjà le fichier en cache, il ne le demande même pas au serveur
Troisième requête (même fichier, l'utilisateur a forcé un reload)
- le client a déjà le fichier en cache, mais comme il y a reload, il va demander au serveur, avec un If-Modified-Since: la date de la dernière requête
- le serveur compare le If-Modified-Since, note que le fichier n'a pas changé depuis, renvoie un 304 pour dire que le fichier n'a pas changé (et ne renvoie pas le fichier)
Jacques.
En général, on fait donc tout le contraire sur ce genre de page: on met un Expires dans le passé, et un Cache-Control: no-cache, comme ça le navigateur va venir récupérer la page à chaque fois (ou au moins demander si elle a changé). C'est ce que tu obtiens maintenant.
Le If-Modified-Since doit être géré (explicitement) côté serveur, il ne suffit pas de mettre un Last-Modified ou un Expires pour que ça marche tout seul. Mais sur une page dynamique comme celle-ci, de toutes façons, tu peux presque toujours considérer que la page aura changé.
(évidemment dans certains cas on peut faire des stratégies plus complexes, avec des pages relativement statiques pour Google et des pages dynamiques pour les autres, mais c'est essentiellement pour des raisons de charge sur tes serveurs, et tu peux vite t'emmêler les pinceaux si tu ne maîtrises pas tout ça).
A l'opposé, les fichiers statiques doivent effectivement être mis en cache le plus possible. Plutôt que de mettre toutes sortes de headers "en dur" (que tu oublieras de modifier dans un an quand il expireront), je te conseille plutôt quelque chose du genre:
ExpiresActive On
ExpiresDefault "access plus 7 days"
ExpiresByType image/gif "access plus 10 years"
ExpiresByType image/png "access plus 10 years"
ExpiresByType image/jpg "access plus 10 years"
etc.
(tu as besoin de mod_expires).
Le Last-Modified sera fourni spontanément par Apache, qui gèrera aussi automatiquement If-Modified-Since pour les fichiers statiques.
Deux exemples détaillés:
Premier exemple: fichier dynamique, généré en php, avec plein de choses qui changent tout le temps (produits, panier, etc.):
Première requete:
- le client n'est jamais venu sur la page, il fait donc une requête normale
- le serveur répond avec:
Expires: (date dans le passé)
Cache-control: no-cache
- le client affiche la page, et note qu'il ne doit pas la mettre en cache
Deuxième requête pour la même page:
- le client est déjà venu, mais il n'a rien mis en cache, il faut donc une requête normale de nouveau
- le reste idem
Deuxième exemple: fichier statique
Première requête:
- le client n'est jamais venu sur la page, il fait donc une requête normale
- le serveur répond avec:
Expires: (loin dans le futur)
Cache-control: max-age=beaucoup
- le client affiche la page, et note qu'il peut la mettre en cache, avec son expiration, et la date de la requête
Deuxième requête (même fichier, dans une autre page par exemple)
- le client a déjà le fichier en cache, il ne le demande même pas au serveur
Troisième requête (même fichier, l'utilisateur a forcé un reload)
- le client a déjà le fichier en cache, mais comme il y a reload, il va demander au serveur, avec un If-Modified-Since: la date de la dernière requête
- le serveur compare le If-Modified-Since, note que le fichier n'a pas changé depuis, renvoie un 304 pour dire que le fichier n'a pas changé (et ne renvoie pas le fichier)
Jacques.
- lambi521
- WRInaute impliqué

- Messages: 782
- Inscription: 15 Juin 2010
Re: Différence entre "last-modified" et "if-modified-since"
Merci beaucoup Jacques pour tes réponses par-faites, j'ai tout compris !
Du coup j'ai enlevé les entêtes sur les pages dynamiques, comme ça expires dans le passé et cache-control no-cache.
Par contre, si la page change effectivement (panier, connexion etc) les images elles restent les mêmes, j'ai donc mis ceci pour ne pas retélécharger les images, j'ai l'impression que ça fonctionne car la navigation sur mon site est beaucoup plus rapide !
Merci beaucoup encore une fois !
Du coup j'ai enlevé les entêtes sur les pages dynamiques, comme ça expires dans le passé et cache-control no-cache.
Par contre, si la page change effectivement (panier, connexion etc) les images elles restent les mêmes, j'ai donc mis ceci pour ne pas retélécharger les images, j'ai l'impression que ça fonctionne car la navigation sur mon site est beaucoup plus rapide !
- Code: Tout sélectionner
<FilesMatch ".(js|ico|jpg|png|gif|css|pdf|txt|html)$">
Header set Cache-Control "max-age=1209600, public"
Header set Expires "Sun, 25 Sep 2011 20:00:00 GMT"
Header set ExpiresDefault "access plus 14 days"
Header set Last-Modified "Sun, 26 Sep 2010 20:00:00 GMT"
Header unset Pragma
</FilesMatch>
Merci beaucoup encore une fois !
- dedein84
- Nouveau WRInaute

- Messages: 8
- Inscription: 29 Sep 2010
Re: Différence entre "last-modified" et "if-modified-since"
Merci pour ta longue explication et surtout du temps que tu passes !!!!!
J'ai bien lu ton texte et il me permet de voir beaucoup plus clair, comme j'ai finis la gestion last modified et du if-modified-since.
Je vais m'atteler au cache.
Merci encore.
J'ai bien lu ton texte et il me permet de voir beaucoup plus clair, comme j'ai finis la gestion last modified et du if-modified-since.
Je vais m'atteler au cache.
Merci encore.
- dedein84
- Nouveau WRInaute

- Messages: 8
- Inscription: 29 Sep 2010
Re: Différence entre "last-modified" et "if-modified-since"
Si je comprends bien l'historie du cache.
Pour le page statique je laisse faire le Server.
Mais pour les pages dynamique je me dois te changer.
En fait pour un site de e commerce quel cache faut il ?
Je suis un peu perdu
Car si j'ai bien compris pour une une page dynamique par exemple une fiche produit :
Nous somme le vendredi 01/10/10 :
expires : Jour-1
cache control : no contol
last modified : 30/08/10.
Ai je bien compris ?
Dois je le configurer du server ou bien de manière dynamique ( pour info IIS6 et Asp)
Merci
André
Pour le page statique je laisse faire le Server.
Mais pour les pages dynamique je me dois te changer.
En fait pour un site de e commerce quel cache faut il ?
Je suis un peu perdu
Car si j'ai bien compris pour une une page dynamique par exemple une fiche produit :
Nous somme le vendredi 01/10/10 :
expires : Jour-1
cache control : no contol
last modified : 30/08/10.
Ai je bien compris ?
Dois je le configurer du server ou bien de manière dynamique ( pour info IIS6 et Asp)
Merci
André
21 messages
• Page 1 sur 2 • 1, 2
Formation recommandée sur ce thème :
Formation REFERENCEMENT naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Différence entre "Enchères automatiques" et "manuelles" avec option CPC max?
- Pourquoi une telle différence avec un "s" et sans "s"
- Différence entre "Pages: Belgique" et "Le web"
- Quelle différence entre "Pages les plus consultées" et "Détail des pages par URL"?
- meta "Last-Modified"
- Googl : différence entre "web" "pages franco.
- difference entre "link:www.votresite.com" et "
- difference rrésultats entre "web" et "page fr
- différence entre "faire pointer" et "redirige
- différence de PR Avec "/" et sans "/" da
- l'attribut rel=nofollow contre le spam de commentaires ?
- Google AdWords introduit le concept de niveau de qualité
- Séminaires Google et Netlinking - 6 et 7 octobre 2004
- Optimiser le référencement d'un blog Dotclear : balises TITLE et META
- Outil : calcul de popularité sur les réseaux sociaux
- Google reconnait-il les différentes formes de mots ? (singulier/pluriel et autres)
- Keyword Search Engine : le choix des bons mots-clés
- Google SiteMaps : guide pratique en français
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
