Aller au contenu
fbern

code http 304 pour les robots

Noter ce sujet :

Recommended Posts

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

  • Vote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ?

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ;-)

 

  • Vote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

  • Contenu similaire

    • Par fbern
      bonjour

       

      je dois débrancher une partie d'un catalogue d'albums de musique pendant 2 jours pour raison technique: cela représente environ 350 000 fiches d'albums.

      Je crois qu'il faut renvoyer une 503 au crawlers pendant cette phase technique. Je me demande si ces 503 ne risquent pas d'affecter les autres fiches (au moins autant) qui réponde elles bien en 200. en gros est ce que le crawler après avoir exploré un certain nombre de 503 ne risque pas de passer son chemin au dépend des pages qui répondent bien ?

       

      Merci à tous

    • Par fbern
      bonjour,

      avez vous déjà généralisé l'envoi aux crawlers des moteurs de recherche un code http 304 pour les contenus qui n'avaient pas été modifiés ?
      N'y a t-il pas un risque de ne plus être crawlé ? (cela pourrait aussi être une façon de cloaker les moteurs ?)
      Faut-il assortir le dispositif d'autres mécanismes ?

      Merci à tous les pros du forum !
×