fbern Posté 1 Décembre 2015 Posté 1 Décembre 2015 bonjour on peut renvoyer des 304 à Google, connaissez vous un bon tuto fiable d'implémentation : par ex : comment faire pour que la 304 ne soit renvoyé qu'au robot et pas aux clients, quelles sont les méthodes de détection que l'on peut mette en place pour detecter qu'un contenu n'a pas été modifié. Toutes vos bonnes pistes sont les bienvenues ? Merci
captain_torche Posté 1 Décembre 2015 Posté 1 Décembre 2015 Pour détecter qu'un contenu n'a pas été modifié, il faudra faire attention à deux choses principales : - la date de création ou de modification de ton contenu principal - la date de création ou de modification la plus récente des commentaires présents sur ta page, s'il y en a. Je ne suis pas hyper calé pour la détection de robots, par contre. Et, es-tu certain qu'ajouter cette en-tête peut t'apporter un véritable plus ?
Message populaire. Cariboo Posté 15 Décembre 2015 Message populaire. Posté 15 Décembre 2015 En fait, le code 304 n'est renvoyé que si le navigateur envoie une requête http:// dite "conditionnelle" au serveur web. Inutile de se préoccuper des robots vs utilisateurs, cela fonctionne tout seul. Ce que fait Googlebot, c'est d'envoyer régulièrement des requêtes conditionnelles en appelant le champ "if modified since". Si le serveur répond que la page n'a pas changé, il passe son chemin et réessaie plus tard. Si la page a changé, Googlebot téléchargera la page complète. Supporter les requêtes conditionnelles pour un serveur web diminue beaucoup la charge du serveur causée par les bots, et favorise l'exploration du site. La requête du bot ressemble à ça : GET /index.html HTTP/1.0 User-Agent: Mozilla/5.0 From: something.somewhere.net Accept: text/html,text/plain,application/* Host: www.example.com If-Modified-Since: Wed, 19 Oct 2005 10:50:00 GMT Si la page répond 304, alors le bot sait que la page n'a pas été modifiée. Et s'il répond 200, elle a été modifiée, et la nouvelle page est tout bonnement téléchargée. Nota Bene : un reverse proxy style Varnish est paramétré pour gérer les 304 par défaut. 1
eric73 Posté 15 Décembre 2015 Posté 15 Décembre 2015 comment fait apache pour savoir si une page php va générer un code html différent ? ou alors, apache ne regarde que la date de dernière modification du fichier php ?
fbern Posté 17 Décembre 2015 Auteur Posté 17 Décembre 2015 Merci beaucoup Cariboo pour rejoindre ce que dit eric73, cela faut-il dire qu'il faille stocker qq part la date de modification, par exemple en utilisant MD5 ? Mais cela n'est-il pas coûteux en ressources ?
Message populaire. Cariboo Posté 17 Décembre 2015 Message populaire. Posté 17 Décembre 2015 Non ce n'est pas en coûteux en ressources. L'info sur la date de dernière modification est renvoyée au navigateur (ou au bot) dans le header http:// Avec des pages dynamiques générées avec un langage orienté serveur, on met à jour le champ Last Modified avec un bout de script. Ex de champs header pour gérer les champs de mise en cache en php : $fp = fopen($_SERVER["SCRIPT_FILENAME"], "r"); $etag = md5(serialize(fstat($fp))); fclose($fp); header("Cache-Control: must-revalidate"); header("Last-Modified: ".gmdate("D, d M Y H:i:s", $SelectS['timestamp'])." GMT"); header('Etag: '.$etag); header("Expires: -1"); A chaque fois que le script est appelé, le bon champ last modified est généré. Evidemment, si la page ne change pas vraiment à chaque fois, il faut utiliser un script adapté. La fonction MD5 sert pour créer un etag unique pour une version de page, ce qui permet de piloter une autre fonction de cache ;-) 1
fbern Posté 18 Décembre 2015 Auteur Posté 18 Décembre 2015 Merci beaucoup Citation Evidemment, si la page ne change pas vraiment à chaque fois... c'est à dire que l'on peut doser le niveau de changement arbitrairement ?
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant