Comment fonctionnent réellement les redirections HTTP (301 vs 302 vs 307)

Explique les fonctionnalités et les cas d'utilisation des codes d'état de redirection HTTP courants : │ 301 (Déplacé de manière permanente), 302 (Trouvé/Déplacé temporairement) et 307 (Redirection temporaire).

Beginner

Les redirections HTTP permettent de rediriger les utilisateurs et les moteurs de recherche vers une URL différente de celle qu'ils ont initialement demandée. Pour ce faire, le serveur envoie un code d'état HTTP spécifique au client (navigateur), qui demande alors au client d'effectuer une nouvelle requête vers la nouvelle URL.

Voici comment fonctionnent les différents types de redirections :

1. 301 Déplacé de manière permanente

  • Objectif : indique que la ressource demandée a été déplacée de manière permanente vers une nouvelle URL.
  • Comportement : le navigateur redirige automatiquement vers la nouvelle URL et, surtout, met généralement cette redirection en cache. Cela signifie que les requêtes suivantes vers l'URL d'origine seront directement redirigées vers la nouvelle URL sans passer par l'ancienne. Les moteurs de recherche mettent également à jour leurs index pour pointer vers la nouvelle URL.
  • Changement de méthode : la méthode HTTP (par exemple, GET, POST) utilisée dans la requête d'origine peut passer de POST à GET dans la requête redirigée, bien que les navigateurs modernes conservent souvent la méthode pour les 301.
  • Cas d'utilisation : Lorsqu'une page a une nouvelle adresse permanente, lors d'un changement de nom de domaine ou lors de la mise en place du protocole HTTPS.

2. 302 Trouvé (déplacé temporairement)

  • Objectif : Indique que la ressource demandée se trouve temporairement à une URL différente. Le serveur s'attend à ce que le client continue d'utiliser l'URL d'origine pour les futures requêtes.
  • Comportement : le navigateur redirige vers la nouvelle URL, mais ne met pas la redirection en cache. Les futures requêtes vers l'URL d'origine seront toujours dirigées vers le serveur d'origine, qui émettra à nouveau la redirection 302. Les moteurs de recherche ne mettent généralement pas à jour leurs index pour les redirections 302.
  • Changement de méthode : Historiquement, les navigateurs changeaient la méthode HTTP de POST à GET pour la requête redirigée, même si l'originale était une POST. Ce comportement est encore courant.
  • Cas d'utilisation : Tests A/B, pages d'atterrissage temporaires ou lorsqu'une ressource est temporairement indisponible à son emplacement habituel.

3. Redirection temporaire 307

  • Objectif : similaire à 302, elle indique que la ressource demandée se trouve temporairement à une URL différente. La principale différence réside dans la manière dont elle gère la méthode HTTP.
  • Comportement : le navigateur redirige vers la nouvelle URL et ne met pas la redirection en cache.
  • Préservation de la méthode : il est essentiel de noter qu'une redirection 307 garantit explicitement que la méthode HTTP utilisée dans la requête d'origine (par exemple, GET, POST, PUT) sera préservée pour la requête redirigée. Si la requête d'origine était une requête POST, la requête redirigée sera également une requête POST.
  • Cas d'utilisation : lorsque vous avez besoin d'une redirection temporaire et qu'il est essentiel de conserver la méthode HTTP d'origine, par exemple pour les soumissions de formulaires. Il s'agit d'une alternative plus correcte sur le plan sémantique à la redirection 302 lorsque la conservation de la méthode est importante.