If-Modified-Since
Utilisation
L’en-tête If-Modified-Since permet une revalidation du cache fondée sur la date de modification d’une ressource. Le client y inclut l’horodatage issu de l’en-tête Last-Modified reçu dans une réponse précédente. Si la ressource n’a pas changé depuis la date indiquée, le serveur renvoie une réponse 304 Not Modified sans corps, ce qui économise de la bande passante et du temps de traitement. Si la ressource a changé, le serveur envoie une réponse 200 normale avec le contenu mis à jour.
Cet en-tête ne s’applique qu’aux requêtes GET et HEAD. Pour les autres méthodes, l’en-tête complémentaire If-Unmodified-Since fournit une logique conditionnelle fondée sur la date.
Lorsque If-Modified-Since et If-None-Match figurent dans la même requête, If-None-Match l’emporte. La comparaison fondée sur l’ETag est plus fiable, car les horodatages ont une résolution d’une seconde et le décalage d’horloge entre le serveur et les caches intermédiaires introduit des cas limites.
La valeur de date suit le format HTTP-date décrit dans la spécification de l’en-tête Date : nom du jour, date, heure en heures, minutes et secondes, suivie de GMT.
Remarque
Googlebot envoie If-Modified-Since lors de ses requêtes d’exploration, avec l’horodatage de la dernière exploration du contenu. Les serveurs qui renvoient 304 pour un contenu inchangé économisent du temps de traitement et des ressources, améliorant indirectement l’efficacité de l’exploration. Les serveurs sont également libres de renvoyer 304 de manière proactive pour toute requête de Googlebot lorsque le contenu n’a pas changé, que la requête comporte ou non des en-têtes conditionnels. Définir le champ max-age de l’en-tête de réponse Cache-Control sur le nombre de secondes pendant lesquelles le contenu devrait rester inchangé aide les robots à déterminer quand réexplorer une URL.
Exemple
Un client revalide une ressource mise en cache. Le serveur renvoie 304 Not Modified si la ressource n’a pas changé depuis le 1er juin 2022 à 08:00 GMT. Sinon, le serveur envoie la ressource complète mise à jour.
If-Modified-Since: Wed, 01 Jun 2022 08:00:00 GMT
Une requête conditionnelle associée au Last-Modified de la réponse précédente. Le client enregistre la date de modification et l’envoie lors de la requête suivante vers la même ressource.
Last-Modified: Wed, 01 Jun 2022 08:00:00 GMT
Lors de la requête suivante :
If-Modified-Since: Wed, 01 Jun 2022 08:00:00 GMT
Remarque
Pour une assistance en SEO et en mise en cache, contactez les anciens consultants SEO de Google, Search Brothers.