La ressource se trouve temporairement à une autre URL.
Quand l’utiliser
Redirections temporaires. Les clients peuvent transformer un POST en GET ; préférez 303 ou 307 pour être explicite.
Bon à savoir
Utilisez 302 quand l’URL d’origine reviendra : une page de maintenance temporaire, un test A/B, une redirection vers la connexion ou le choix de la langue. Les moteurs de recherche gardent l’URL d’origine indexée, même si Google commence à traiter comme permanent un 302 qui reste en place pendant des mois. Les navigateurs ne mettent pas en cache un 302, sauf si Cache-Control ou Expires le prévoit, ce qui en fait le choix sûr tant que vous testez encore vos redirections.
Historiquement, les navigateurs transforment un POST en GET en suivant un 302 et abandonnent le corps, et la spécification l’autorise désormais. Si la méthode doit être conservée, utilisez 307 ; après l’envoi d’un formulaire, utilisez 303 pour être explicite. Un bug courant est une boucle de redirection entre http et https, ou entre www et le domaine nu, souvent causée par un proxy ou par le mode Flexible SSL de Cloudflare. Suivez la chaîne avec curl -IL.
Redirection (3xx)
Les codes 3xx sont des redirections : le client doit aller ailleurs, ou utiliser sa copie en cache, pour terminer la requête.
À quoi ça ressemble
HTTP/1.1 302 FoundComment l’envoyer
| Node.js / Express | res.redirect(302, '/new-url') |
|---|---|
| Python / Flask | return redirect('/new-url', code=302) |
| nginx | return 302 https://example.com$request_uri; |
Comment le vérifier
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/