Code d'état 304 – Qu'est-ce que c'est et comment y remédier ?
Table des matières
Le code d’état 304 « Non modifié » est l’un de ces codes d’état HTTP dont vous avez probablement entendu parler en surfant sur Internet. Certains codes HTTP sont plus populaires et souvent rencontrés par les visiteurs, comme les erreurs 404 « Not Found » ou 504 « Gateway Timeout ». Dans le même temps, d’autres sont masqués et fonctionnent en arrière-plan de votre navigateur.
Le code d’état 304 en fait partie. Il remplit sa fonction dans la communication entre les serveurs web et les clients web. Caché pour l’utilisateur final, il fournit des instructions sur la façon de charger les ressources d’une page web.
Cela étant dit, les codes HTTP sont souvent confondus avec des erreurs, quelle que soit leur nature, et ne sont pas traités correctement, et le code d’état HTTP 304 ne fait pas exception.
Cet article clarifiera les choses et fournira des informations plus détaillées sur ce qu’est le statut 304 « Non modifié » et comment corriger les erreurs provoquées par celui-ci.
Ainsi, le code d’état 304 réduit l’utilisation de la bande passante en indiquant aux navigateurs quand charger le contenu mis en cache et quand télécharger de nouvelles ressources.
Fonctionnement du code d’état 304
L’exemple suivant décrit une interaction typique entre un serveur web et un navigateur impliquant un code de réponse 304 :
- Vous ouvrez un nouveau site web : lorsque vous visitez un site web pour la première fois, le navigateur envoie une requête HTTP GET au serveur pour la ressource souhaitée.
- Le serveur renvoie l’en-tête ETag ou Last-Modified : Le serveur traite la requête HTTP et répond avec la ressource ainsi que des en-têtes de réponse HTTP qui incluent « ETag » et/ou « Last-Modified ». Ces en-têtes représentent l’état ou la version actuelle de la ressource.
- Votre navigateur stocke ces en-têtes et télécharge le contenu : Le navigateur stocke les en-têtes « ETag » et/ou « Last-Modified » avec la ressource dans son cache. Le contenu est désormais mis en cache sur votre appareil.
- La prochaine fois que vous visiterez le site web : lorsque vous le revisitez ou que le navigateur doit revalider le contenu mis en cache, il envoie une requête GET conditionnelle. Cette requête inclut le En-tête If-None-Match avec la valeur ETag précédemment stockée et/ou l’En-tête If-Modified-Since avec la précédemment stockée Date de Last-Modified.
- Le serveur évalue les en-têtes : Le serveur reçoit la requête conditionnelle et vérifie l’état actuel de la ressource par rapport au « ETag » et/ou « Last-Modified ” date fournie par le navigateur.
- Le serveur répond de deux manières différentes en fonction de l’évaluation :
- Si la date actuelle « ETag » ou « Last-Modified » correspond aux valeurs fournies par le navigateur (ce qui signifie que le contenu n’a pas changé), le serveur répond avec un code d’état « 304 Non modifié ». Le navigateur continue d’utiliser le contenu mis en cache.
- Si la date actuelle « ETag » ou « Last-Modified » ne correspond pas aux valeurs fournies (le contenu a changé), le serveur répond avec un 200 OK code d’état. Ensuite, il envoie la nouvelle version de la ressource. Le navigateur met à jour son cache pour enregistrer les pages web dans leur dernière version, ETag et/ou en-têtes HTTP « Last-Modified ».
Quelle est la différence entre 304 et 200 codes d’état HTTP ?
Les codes d’état 200 OK et 304 Non modifié sont deux résultats possibles des mêmes requêtes client envoyées à un serveur web. Bien que les deux codes représentent une interaction réussie, ils fournissent des instructions différentes sur la gestion de la ressource demandée.
- Le code de réponse 200 OK contient le corps de la ressource demandée (document HTML, fichier JSON, image, etc.)
- La réponse 304 Not Modified n’a pas de corps et ne contient que des en-têtes. Ces en-têtes informent les navigateurs qu’ils disposent d’une version à jour de la ressource qu’ils ont demandée et qu’ils peuvent utiliser leur version de cache stockée.
- Le code de réponse 200 ne tient pas compte des ressources mises en cache du navigateur et fournit la dernière version des ressources.
Comment corriger le code d’état HTTP 304
Une ressource mise en cache obsolète ou une mauvaise configuration du navigateur peut empêcher le chargement des données de navigation mises en cache. Dans ce cas, vous risquez de tomber sur des erreurs lors de la visite de pages web.
Ainsi, vous devriez vous concentrer sur la résolution de ce type de problèmes au lieu d’essayer de corriger chaque code HTTP 304 non modifié.
Ci-dessous, vous trouverez les solutions les plus courantes et les plus efficaces.
Vider le cache de votre navigateur
Souvent, les données de navigateur obsolètes ou corrompues peuvent avoir un impact négatif sur la façon dont votre navigateur communique avec un serveur web. En conséquence, il peut générer toutes sortes d’erreurs.
Dans de nombreux cas, vider le cache de votre navigateur résout ces erreurs. Suivez les étapes ci-dessous pour supprimer le cache sur Chrome.
- Ouvrez le menu kebab (trois points) et sélectionnez Effacer les données de navigation.
- Pour supprimer les images et fichiers mis en cache, cochez la case Images et fichiers en cache. En option, vous pouvez également supprimer les cookies et l’historique de navigation.
- Confirmez votre choix en appuyant sur Effacer les données.
- Rechargez la page demandée pour voir si l’erreur est résolue.
Vider le cache DNS
Votre ordinateur stocke également le cache DNS, qui comprend les paramètres DNS des sites web précédemment visités. Un cache DNS obsolète peut entraîner toutes sortes de problèmes lors de la visite de pages web.
Vider le cache DNS pour supprimer les informations DNS expirées ou corrompues. Pour ce faire, vous devrez utiliser le Terminal sur Mac ou Linux et l’Invite de commandes sur Windows.
Prenons macOS, par exemple. Pour vider le cache DNS, tapez la commande suivante dans Terminal.
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Après avoir exécuté la commande, vous serez invité à fournir votre mot de passe administrateur (sudo).
Suivez les guides ci-dessous pour obtenir des instructions étape par étape sur la suppression du cache DNS sur différents systèmes d’exploitation (OS).
- Comment vider le cache DNS sous Windows
- Comment vider le cache DNS sur Mac
- Comment vider le cache DNS sous Linux
Désactiver les extensions de navigateur
Les extensions de navigateur sont idéales pour étendre les fonctionnalités de base de tous les principaux navigateurs. Mais dans de rares occasions, ils peuvent empêcher le chargement correct de la ressource mise en cache.
Vous pouvez donc désactiver les extensions de votre navigateur pour vérifier si elles provoquent des perturbations.
Suivez les étapes ci-dessous pour désactiver les extensions Chrome. Le processus sur d’autres navigateurs est similaire.
- Ouvrez le menu kebab > Extensions > Gérer les extensions.
- Cliquez sur le curseur ON/OFF pour désactiver une extension. Vous pouvez également supprimer les extensions inutiles ou obsolètes à l’aide du bouton Supprimer.
- Ensuite, revisitez la page web qui a généré des erreurs. Si l’erreur persiste, répétez le processus jusqu’à ce que la page se charge correctement.
Vérifier les redirections dans le fichier .htaccess
Des instructions de redirection incorrectes peuvent empêcher votre navigateur de traiter correctement un code de réponse HTTP 304 provenant d’un site web. Ainsi, si vous êtes le propriétaire du site web, vous devez inspecter le fichier de configuration de votre serveur contenant les directives de redirection.
Ce fichier est .htaccess dans Apache, l’application de serveur web la plus populaire. Voici comment l’inspecter.
- Accédez aux fichiers de votre site web via le FTP ou Gestionnaire de fichiers. Si vous êtes un utilisateur de SiteGround, accédez à Site Tools > Site > Gestionnaire de fichiers.
- Ouvrez le répertoire racine de votre site web. Il s’agit généralement de votredomaine.com/public_html.
- Recherchez le fichier .htaccess et modifiez-le.
- Recherchez les règles de redirection. Ils sont généralement placés en haut du fichier .htaccess. Supprimez-les pour tester s’ils vous empêchent de charger le site web.
Changer les serveurs DNS
Les ordinateurs obtiennent les adresses IP des sites web à partir de serveurs DNS. Si la communication du serveur DNS est interrompue, votre ordinateur risque de ne pas gérer correctement un code d’état 304. Cela peut être dû à une mauvaise adresse de serveur DNS ou à un problème temporaire sur votre serveur DNS désigné.
Modifiez les serveurs DNS par défaut avec d’autres serveurs DNS publics. Par exemple, vous pouvez passer aux serveurs DNS de Google si votre FAI en utilise des personnalisés.
Serveurs DNS Google
8.8.8.8
8.8.4.4
La manière exacte de modifier les serveurs DNS dépend de votre système d’exploitation (OS). Ci-dessous, vous trouverez les étapes pour Windows et Mac.
Mac
- Ouvrir Réglages Système > Réseau.
- Sélectionnez votre réseau actif et cliquez sur Détails.
- Ouvrez l’onglet DNS.
- Cliquez sur le signe +.
- Tapez la nouvelle adresse du serveur DNS dans le champ en surbrillance.
- Appuyez sur OK.
Rechargez la page problématique pour voir si l’erreur a disparu.
Windows
- Ouvrez le menu Windows.
- Tapez “Panneau de configuration” dans la barre de recherche.
- Cliquez sur l’icône Panneau de configuration qui apparaît comme premier résultat de recherche.
- Sélectionnez Réseau et Internet > Centre de réseau et partage.
- Cliquez sur votre réseau actif.
- Une fenêtre pop-up apparaîtra. Appuyez sur le bouton Propriétés.
- Mettez en surbrillance l’élément Internet Protocol Version 4 (TCP/IPv4) et sélectionnez Propriétés.
- Choisissez l’option Utiliser l’adresses de serveur DNS suivante.
- Tapez l’adresse du serveur DNS principal dans le champ Serveur DNS préféré.
- Saisissez l’adresse du serveur DNS secondaire dans le champ Serveur DNS auxiliaire.
- Confirmez les paramètres en cliquant sur OK.
Le code d’état HTTP 304 « Non modifié » est-il incorrect ?
Non, le code d’état HTTP 304 « Non modifié » n’est pas un mauvais code. Il n’indique aucun problème avec votre navigateur ou le serveur web d’un site. En fait, cela ne représente aucun problème et n’est pas un code d’erreur.
Au contraire, son objectif est d’ améliorer l’expérience utilisateur des visiteurs du site web. Au lieu de télécharger le contenu à chaque fois, les navigateurs web peuvent utiliser leurs données mises en cache pour afficher les pages web plus rapidement. Ainsi, le code d’état 304 peut économiser l’utilisation de la bande passante, du temps et des ressources du serveur.
Cela étant dit, de nombreux didacticiels en ligne traitent le statut 304 comme l’un des codes d’erreur et se concentrent sur sa correction comme si l’objectif était de s’en débarrasser. Ce n’est pas correct et vous ne devriez pas viser à éliminer le code d’état 304. En fait, vous ne le verrez probablement pas du tout sur votre écran.
Cependant, différents problèmes liés au cache et mauvaises configurations du navigateur/appareil, indirectement liés au code d’état HTTP 304, peuvent entraver votre connexion à des sites web spécifiques.
Conclusion
Le code d’état HTTP 304 fait partie intégrante du mécanisme de mise en cache du web qui améliore généralement la vitesse et l’efficacité de la navigation. Bien que cela ne soit pas problématique en soi, des erreurs de configuration peuvent entraîner des problèmes de mise à jour incorrecte du contenu.
En suivant les méthodes de dépannage décrites ci-dessus, vous pouvez résoudre la plupart des problèmes liés au code d’état 304 et vous assurer de consulter le contenu web le plus à jour.