Les codes HTTP 3xx sont des codes de réponse de statut HTTP qui indiquent une redirection. Ils sont utilisés par le serveur web pour informer le client (comme un navigateur web) que la ressource demandée a été déplacée vers une autre URL, et que le client doit prendre des mesures supplémentaires pour accéder à la nouvelle URL.
Code HTTP 300 Multiple Choices
Le code HTTP 300, aussi appelé « Multiple Choices », est une réponse standard d’un serveur web qui indique que le serveur a identifié plusieurs options pour la ressource que le client a demandée, et que le client doit choisir une option parmi celles fournies. Ce code est généralement suivi d’une liste d’options que le client peut choisir.
C’est l’une des réponses HTTP moins couramment utilisées aujourd’hui. Dans la pratique, des codes comme 301 (Moved Permanently) et 302 (Found) sont souvent utilisés à la place pour gérer les redirections. Mais, dans le cas où plusieurs options sont réellement disponibles et que le serveur veut que le client (généralement un navigateur web) fasse un choix, le code 300 pourrait être utilisé.
Voici un exemple simple de la façon dont cela pourrait apparaître dans une réponse HTTP:
HTTP/1.1 300 Multiple Choices
Content-Type: text/html
<title>Multiple Choices</title>
<h1>Multiple Choices</h1>
<p>La ressource que vous avez demandée est disponible en plusieurs versions. Veuillez choisir une des options suivantes:</p>
<ul>
<li><a href=""url1"">Option 1</a></li>
<li><a href=""url2"">Option 2</a></li>
<li><a href=""url3"">Option 3</a></li>
</ul>
Dans ce cas, le client verrait une page avec trois liens, chacun menant à une version différente de la ressource demandée. Le client pourrait alors choisir l’une de ces options pour accéder à la ressource. »
Code HTTP 301 Moved Permanently
Le code HTTP 301, aussi connu sous le nom « Moved Permanently », est une réponse standard du protocole HTTP indiquant qu’une ressource URL spécifiée a été déplacée de façon permanente à une autre URL. Les navigateurs web redirigent automatiquement à la nouvelle URL.
Quand un serveur web renvoie un code d’état 301, il fournit également l’emplacement de la nouvelle URL où la ressource a été déplacée. C’est une façon pour les administrateurs de site web de dire « »la page que vous cherchez n’est plus ici, elle a été déplacée de façon permanente à cette nouvelle adresse » ».
En SEO (Optimisation pour les moteurs de recherche), l’utilisation correcte des redirections 301 est importante car elle permet de conserver le « jus de lien » (link juice), qui est une façon de mesurer l’autorité d’une page basée sur les liens qui pointent vers elle. En d’autres termes, une redirection 301 aide à conserver la valeur SEO de l’ancienne URL et la transfère à la nouvelle URL.
Voici un exemple basique de la manière dont cela pourrait être mis en œuvre dans un fichier .htaccess sur un serveur Apache :
Redirect 301 /ancienne-page.html http://www.exemple.com/nouvelle-page.html
Dans cet exemple, toute personne qui tente d’accéder à www.exemple.com/ancienne-page.html serait redirigée vers www.exemple.com/nouvelle-page.html. »
Code HTTP 302 Found « Le code HTTP 302, également appelé « »Found » » (trouvé), est une réponse temporaire émise par un serveur web pour indiquer qu’une ressource demandée a été déplacée temporairement vers une autre URL. Cela signifie que, bien que la ressource demandée existe, elle n’est pas actuellement accessible à l’URL fournie, et le client devrait la requérir à une nouvelle URL.
Dans le cas d’un code 302, le serveur fournira généralement une nouvelle URL dans l’en-tête HTTP « »Location » », indiquant où le client peut trouver la ressource demandée.
Voici un exemple d’à quoi pourrait ressembler une réponse HTTP avec un code d’état 302 :
HTTP/1.1 302 Found
Location: https://www.exemple.com/nouvelle-url
...
Les navigateurs web suivront généralement automatiquement la redirection en accédant à l’URL fournie dans l’en-tête « »Location » ». Notez que cela n’indique pas une erreur, mais simplement une redirection temporaire vers une autre URL.
Code HTTP 303 See Other
Un code de statut HTTP 303 « See Other » est un code de réponse HTTP standard qui est généralement utilisé pour indiquer que la réponse à la requête peut être trouvée à une autre URL (l’URL est fournie dans l’en-tête Location), et que le client doit récupérer cette ressource en utilisant une méthode GET, indépendamment de la méthode utilisée pour la requête originale.
Par exemple, cela peut se produire dans le scénario suivant :
- Un client envoie une requête POST à une certaine URL.
- Le serveur traite cette requête POST, mais au lieu de renvoyer une réponse directement, il renvoie un code de statut 303 avec une nouvelle URL.
- Le client suit alors cette redirection et envoie une nouvelle requête GET à l’URL spécifiée dans l’en-tête Location de la réponse 303.
Cela permet de rediriger le client vers une nouvelle ressource qui peut être une confirmation que l’action a été effectuée ou une nouvelle page entièrement. C’est souvent utilisé dans les formulaires web pour rediriger un utilisateur vers une nouvelle page après qu’un formulaire a été soumis avec succès. »
Code HTTP 304 Not Modified
Le code HTTP 304, également connu sous le nom de « Not Modified », est un code de statut HTTP qui est retourné par le serveur pour indiquer que la ressource demandée n’a pas été modifiée depuis la dernière fois qu’elle a été accédée. Ce code est souvent utilisé avec les en-têtes HTTP de gestion de cache, comme « If-Modified-Since » ou « If-None-Match ».
Voici comment cela fonctionne:
- Un client (comme un navigateur web) fait une requête à un serveur web pour une ressource spécifique.
- Le client envoie également des en-têtes « If-Modified-Since » ou « If-None-Match », qui contiennent respectivement la date de la dernière fois que le client a accédé à la ressource ou un identifiant unique de la version précédemment reçue de la ressource.
- Si la ressource n’a pas été modifiée depuis la date ou l’identifiant spécifié, le serveur renvoie un code de statut 304 « Not Modified », sans renvoyer le corps de la ressource.
Cela permet d’économiser de la bande passante et d’accélérer le chargement de la page, car le client peut utiliser la version de la ressource qu’il a déjà en cache.
Si la ressource a été modifiée, le serveur renverra la ressource mise à jour avec un code de statut 200 « OK ».
En résumé, le code 304 permet d’optimiser les performances en réduisant la nécessité de renvoyer des ressources inchangées à travers le réseau.
Code HTTP 305 Use Proxy (depuis HTTP/1.1)
Le code HTTP 305 « Use Proxy » était défini dans la spécification HTTP 1.1 originale (RFC 2616) et signifiait qu’une réponse attendue devait être récupérée à l’aide d’un proxy, dont l’adresse serait fournie dans la réponse. C’était une manière d’informer le client que l’accès direct à la ressource n’est pas autorisé et qu’il doit utiliser le proxy spécifié pour accéder à la ressource demandée.
Toutefois, il est important de noter que ce code de statut a été abandonné dans les versions ultérieures de la spécification HTTP. Dans la mise à jour de la spécification HTTP/1.1 (RFC 7231), ce code a été supprimé en raison de problèmes de sécurité et de configuration. En conséquence, il n’est généralement pas utilisé dans les pratiques modernes de développement web.
Si vous rencontrez ce code, c’est probablement dans un contexte très spécifique ou dans un système ancien qui suit toujours la spécification originale HTTP/1.1. Dans tous les cas, la meilleure approche serait de réviser et d’ajuster les pratiques pour se conformer aux standards modernes.
Code HTTP 306 (inutilisé)
Le code d’état HTTP 306 est effectivement un code qui n’est plus utilisé. Dans les premières versions de la spécification HTTP/1.1, le code 306 était réservé, mais il n’a jamais été officiellement utilisé ou défini. Plus tard, dans les versions ultérieures de la spécification HTTP, le code 306 a été supprimé et est maintenant marqué comme « inutilisé ».
Il n’a pas de signification standard ou de comportement associé dans les systèmes modernes, donc si vous voyez ce code dans un contexte actuel, il est probablement utilisé de manière non standard ou incorrecte.
Si vous êtes intéressé par les codes d’état HTTP et leur signification, vous pourriez vouloir explorer d’autres codes qui sont largement utilisés et standardisés, comme 200 (OK), 404 (Non trouvé), 500 (Erreur interne du serveur), etc.
Code HTTP 307 Temporary Redirect
Le code HTTP 307, intitulé « Temporary Redirect », est un statut de réponse HTTP qui indique que la ressource demandée a été temporairement déplacée vers une autre URL. Cela signifie que le client doit refaire la requête à l’URL fournie dans la réponse.
Voici quelques points à noter concernant ce code de statut :
- Temporaire : Le mot « temporaire » signifie que le déplacement n’est que pour une courte période et que l’URL originale pourrait être réutilisée dans le futur.
- Redirection : La redirection est le processus par lequel un navigateur web est automatiquement dirigé d’une URL à une autre.
- Méthode HTTP préservée : Contrairement à certains autres codes de statut de redirection, le code 307 garantit que la méthode HTTP (comme GET ou POST) utilisée pour la requête initiale reste la même pour la nouvelle requête à l’URL redirigée.
- Inclusion de l’en-tête Location : La réponse qui inclut un code de statut 307 devrait également inclure un en-tête « »Location » » qui fournit l’URL vers laquelle le client devrait rediriger la requête.
- Utilisation : Il est souvent utilisé dans les situations où une ressource a changé d’emplacement temporairement, comme pour la maintenance du site web ou pour les redirections basées sur des conditions spécifiques (comme la géolocalisation).
Voici un exemple simplifié de ce à quoi pourrait ressembler une réponse HTTP 307 :
HTTP/1.1 307 Temporary Redirect
Location: https://www.exemple.com/nouvelle-url
Dans cet exemple, le client recevrait une réponse avec le code de statut 307 et un en-tête « »Location » » pointant vers la nouvelle URL temporaire où la ressource peut être trouvée. Le client devrait alors refaire sa requête à cette nouvelle URL en utilisant la même méthode HTTP que celle utilisée pour la requête initiale.
Code HTTP 308 Permanent Redirect
Le code HTTP 308, connu sous le nom de « Permanent Redirect », est une réponse HTTP indiquant que la ressource demandée a été déplacée de manière permanente à une autre URL. Ce code a été défini dans la RFC 7538, et il indique au client qu’il doit répéter la requête originale à la nouvelle URL.
Voici quelques points clés à propos du code HTTP 308 :
- Redirection permanente : Comme son nom l’indique, une redirection 308 est permanente, ce qui signifie que la nouvelle adresse est la nouvelle emplacement permanent de la ressource.
- Méthode HTTP conservée : À la différence du code 301, le code 308 ne permet pas de changer la méthode HTTP lors de la redirection. Par exemple, si la requête initiale était un POST, la requête redirigée sera également un POST.
- Corps de la requête conservé : Tout comme la méthode, le corps de la requête (le cas échéant) est également conservé lors de la redirection.
- Référencement (SEO) : En termes de SEO, une redirection 308 indique aux moteurs de recherche que la page a été déplacée de manière permanente, et la plupart des moteurs de recherche transféreront la valeur SEO (par exemple, la valeur des backlinks) de l’ancienne à la nouvelle URL.
- Utilisation : Bien que ce ne soit pas aussi couramment utilisé que d’autres codes de redirection comme 301 ou 302, il est utilisé dans des cas spécifiques où il est important de conserver la méthode et le corps de la requête lors de la redirection.
Voici un exemple de la manière dont cela pourrait être utilisé dans un en-tête HTTP :
HTTP/1.1 308 Permanent Redirect
Location: https://www.nouvelle-url.com/chemin
Dans cet exemple, le navigateur web ou le client HTTP recevra l’instruction de refaire la même requête à l’URL spécifiée dans l’en-tête « Location », en conservant la méthode et le corps de la requête originaux.
Code HTTP 310 Too many Redirects
En réalité, le code d’état HTTP 310 n’est pas un code d’état standard reconnu par le protocole HTTP. Vous pourriez avoir commis une petite erreur dans votre question. Peut-être faisiez-vous référence au code d’état « »310 Multiple Choices » » (bien que ce ne soit pas non plus un code d’état standard) ou, plus probablement, au code d’état « 307 Temporary Redirect » ou « 308 Permanent Redirect ».
Cependant, le message « Too Many Redirects » est souvent associé à une erreur qui se produit lorsqu’un navigateur détecte une boucle de redirection, où une page redirige constamment vers une autre, créant une boucle infinie. Dans ce cas, vous pourriez voir une erreur « »310 Too many Redirects » » comme un message d’erreur non standard, mais généralement, l’erreur associée à une boucle de redirection est « »429 Too Many Requests » ».
Voici comment corriger une boucle de redirection :
- Vérifier les règles de redirection: Assurez-vous que vos règles de redirection sur votre serveur web ou dans votre CMS ne créent pas une boucle.
- Réglages des cookies: Parfois, les boucles de redirection peuvent être causées par des problèmes avec les cookies du site web. Essayez de nettoyer les cookies de votre navigateur et voyez si cela résout le problème.
- Configuration DNS et de Serveur: Vérifiez si la configuration de votre DNS et de votre serveur est correcte.
- Plugins et Extensions: Si vous utilisez un CMS, les plugins ou extensions peuvent également causer des problèmes de redirection. Essayez de désactiver les plugins pour voir si cela résout le problème.
- Vérification des Logs: Consultez les journaux du serveur pour obtenir des indices sur la cause des redirections excessives.
- Mise à jour du CMS: Si vous utilisez un CMS, assurez-vous qu’il est à jour, ainsi que tous les plugins et thèmes que vous utilisez.
N’oubliez pas de faire des copies de sauvegarde avant d’apporter des modifications importantes à votre site, et testez les changements dans un environnement de développement avant de les appliquer à votre site en direct. »