HTTP 301 Moved Permanently : ce que cela signifie
RÉPONSE DIRECTE
HTTP 301 Moved Permanently signifie que la ressource demandée a été associée à une redirection permanente vers une autre URL, généralement indiquée par l’en-tête de réponse `Location`. Un 301 s’applique à la requête précise qui l’a reçu ; cela ne signifie pas à lui seul que l’ensemble du site est indisponible. Vérifiez l’URL exacte, la méthode HTTP, les en-têtes de réponse et la destination de la redirection avant de modifier la configuration.
Points clés
- HTTP 301 est une redirection permanente pour une ressource demandée, et non automatiquement une panne généralisée du site.
- L’en-tête
Locationindique normalement où le client doit se rendre ensuite ; examinez-le avec les en-têtes liés à la mise en cache et à l’authentification. - La résolution DNS et la négociation TLS peuvent réussir même lorsque la requête HTTP reçoit une réponse 301.
- Une redirection peut être intentionnelle en raison d’URL canoniques, d’un routage HTTP vers HTTPS, d’un changement de nom d’hôte, d’un flux d’authentification ou du routage de l’application.
- Les propriétaires de sites doivent déterminer si la réponse a été générée par le serveur web, l’application, le reverse proxy, le CDN ou le WAF avant de modifier les paramètres.
- Testez la même URL et la même méthode après toute correction, puis vérifiez que les routes associées renvoient toujours les statuts attendus.
Site Administrator
Ce que signifie cette erreur et comment la reconnaître
- Un navigateur, un client API, un service de monitoring ou un outil de vérification HTTP signale
301 Moved Permanently. - Un navigateur peut suivre automatiquement la redirection, afficher une URL différente ou révéler une boucle de redirection si la destination renvoie vers l’URL d’origine.
- La réponse peut contenir un en-tête
Locationindiquant la destination de la redirection. - Le comportement peut se produire uniquement pour une URL, un nom d’hôte, une méthode HTTP, un état d’authentification, un user-agent ou un chemin réseau donné.
- Le DNS peut se résoudre correctement et TLS peut être négocié avec succès, puisque le point de terminaison a renvoyé une réponse HTTP.
- Selon leurs paramètres de redirection, les clients API ou les outils automatisés peuvent s’arrêter au 301 au lieu de le suivre.
Causes principales, classées par probabilité
- Canonicalisation intentionnelle de l’URL : le site redirige un nom d’hôte, un chemin, une forme avec ou sans slash final, ou une autre variante d’URL vers l’adresse préférée.
- Migration de protocole ou de nom d’hôte : le trafic HTTP peut être redirigé vers HTTPS, ou un ancien nom d’hôte peut pointer vers un nom d’hôte de remplacement.
- Routage de l’application ou du framework : l’application peut rediriger une route après une modification de chemin, un changement d’état de connexion ou le déplacement d’une ressource.
- Règles du serveur web, du reverse proxy ou du CDN : la configuration de l’infrastructure peut appliquer une redirection avant que la requête n’atteigne l’application.
- Comportement lié à une redirection mise en cache : un navigateur, un cache intermédiaire ou un CDN peut continuer à fournir une redirection précédemment mise en cache pendant la propagation des changements de configuration.
- Comportement propre à la méthode : une règle de redirection peut convenir à la navigation dans un navigateur, mais être inadaptée à une requête API ou à une méthode qui doit préserver la sémantique de sa requête.
- Règles inattendues ou contradictoires : plusieurs couches peuvent rediriger vers des destinations différentes, créant une chaîne ou une boucle.
Comment corriger le problème
Si vous visitez le site
- Vérifiez l’adresse exacte, notamment le nom d’hôte, le chemin et le protocole. Ne suivez la redirection que si la destination est familière et attendue.
- Si la destination nécessite un compte, connectez-vous via l’interface habituelle du site et réessayez. Ne saisissez pas vos identifiants sur un domaine de redirection qui ne vous est pas familier.
- Si le navigateur atteint la page attendue, le 301 fonctionne peut-être comme prévu. S’il boucle, aboutit au mauvais hôte ou se termine sur une page inexistante, notez l’URL d’origine et la destination.
- Pour une API ou un client automatisé, vérifiez s’il suit les redirections et si l’URL redirigée est valide pour la même méthode de requête et le même contexte d’authentification.
- Signalez au propriétaire du site l’URL d’origine, la destination, l’heure approximative, le type de client et le statut observé. Ne partagez pas de mots de passe, de cookies ni de secrets API.
Si vous possédez ou gérez le site
- Reproduisez la requête exacte. Notez la méthode HTTP, l’URL complète, l’hôte, le protocole, l’état d’authentification le cas échéant, le statut final et chaque destination de redirection.
- Examinez les en-têtes de réponse, en particulier
Location, les en-têtes liés au cache, ceux liés à l’authentification et tout en-tête identifiant un proxy ou une couche serveur. - Déterminez quel composant a produit le 301 : application, serveur web, reverse proxy, CDN ou WAF. Consultez les journaux correspondants à partir de l’horodatage de la requête et d’un identifiant de requête s’il est disponible.
- Comparez le comportement avec la conception de routage prévue. Confirmez si la redirection doit gérer un changement de nom d’hôte, une règle HTTP vers HTTPS, un chemin canonique, une ressource déplacée ou un flux applicatif.
- Recherchez les chaînes de redirection, les boucles, les règles contradictoires et une destination incorrecte. Examinez les déploiements récents et les changements apportés au routage, à l’authentification, au cache, au proxy ou à la configuration du CDN.
- Appliquez la correction autorisée la plus ciblée au niveau qui a généré la réponse. Évitez les modifications générales des permissions, de la sécurité ou des règles de redirection lorsqu’une seule route ou condition est incorrecte.
- Testez à nouveau la même URL et la même méthode depuis un client adapté. Testez ensuite la destination, les routes associées importantes et les cas authentifiés et non authentifiés pertinents.
- Si vous soupçonnez une redirection mise en cache, suivez le processus approuvé d’invalidation du cache du site et évaluez son impact opérationnel avant d’effectuer cette modification.
Prévention et vérification du correctif
- Définissez et documentez les redirections intentionnelles, notamment les anciennes URL, les destinations, les méthodes concernées et les responsables.
- Placez sous gestion de versions les règles du serveur web, de l’application, du reverse proxy, du CDN et du WAF lorsque cela est possible.
- Après chaque mise en production, testez les URL canoniques, le comportement HTTP vers HTTPS, les changements de nom d’hôte, les méthodes API importantes et les routes authentifiées.
- Surveillez les taux de redirection, les chaînes et les boucles par route et par déploiement, plutôt que de considérer chaque 301 comme une panne.
- Conservez les journaux des requêtes et de l’infrastructure suffisamment longtemps pour établir la correspondance avec les redirections inattendues.
- Examinez le comportement du cache lorsque vous modifiez les règles de redirection afin que des réponses obsolètes ne masquent pas le résultat de la correction.
Quand demander une aide externe
Demandez une assistance lorsqu’un 301 inattendu affecte une route publique importante, produit une boucle ou une longue chaîne, envoie les utilisateurs vers un hôte non fiable ou incorrect, concerne de nombreux utilisateurs, ou nécessite des modifications de la configuration de l’authentification, de la sécurité, du proxy, du CDN ou du serveur que vous ne pouvez pas valider sans risque. Fournissez des détails de requête assainis, les destinations de redirection, les horodatages, les en-têtes de réponse et les journaux pertinents. Ne partagez jamais de mots de passe, de cookies, de clés API ni d’autres secrets.
Questions fréquentes
HTTP 301 signifie-t-il que tout le site est indisponible ?
Non. Un 301 décrit la réponse à une requête HTTP particulière. Il peut affecter une URL, un nom d’hôte, une méthode, un client ou un état d’authentification, tandis que les autres parties du site continuent de fonctionner.
Que fait l’en-tête Location dans une réponse 301 ?
Il indique normalement l’URL que le client doit demander ensuite. Vérifiez que cette destination utilise le bon hôte, le bon protocole et le bon chemin, et recherchez les chaînes ou les boucles.
Le DNS et TLS peuvent-ils fonctionner correctement lorsqu’un HTTP 301 est renvoyé ?
Oui. La résolution DNS et la négociation TLS réussies sont distinctes du statut HTTP renvoyé par le point de terminaison. Un 301 indique qu’un point de terminaison acceptant HTTP a répondu par une redirection.
Pourquoi un navigateur suit-il un 301 alors que mon client API ne le fait pas ?
Les navigateurs suivent généralement les redirections pendant la navigation, tandis que les clients API peuvent nécessiter l’activation du suivi des redirections ou s’arrêter afin que l’application gère explicitement la destination. Vérifiez le comportement du client en matière de redirections, ainsi que les exigences de méthode et d’authentification de la cible.
Faut-il remplacer une redirection permanente par un autre code de statut ?
Pas automatiquement. Confirmez d’abord la relation prévue entre les ressources, la méthode de requête et le comportement du client. La modification du statut d’une redirection peut affecter la navigation, les caches, les clients et le traitement par les moteurs de recherche ; ne l’effectuez que si la conception du routage le prévoit.
Que doivent vérifier les propriétaires de sites en premier ?
Confirmez la requête exacte et examinez l’en-tête Location, puis identifiez la couche qui a généré la réponse et faites-la correspondre aux journaux appropriés. Examinez les changements récents du routage, du proxy, de l’application et du cache avant de modifier la configuration.
Documentation complémentaire
- MDN Web Docs: 301 Moved Permanently — Référence sur le code de statut et son comportement HTTP.
- RFC 9110: HTTP Semantics — Référence normative sur la sémantique des réponses HTTP et le comportement des redirections.