307 Temporary Redirect

Répéter la même requête à une autre URL.

Quand l’utiliser

Redirection temporaire qui doit conserver la méthode et le corps.

Bon à savoir

307 garantit que le client répète la même méthode et le même corps à la nouvelle URL : un POST reste un POST. Il convient donc au déplacement temporaire de points de terminaison d’API. Vous voyez aussi un 307 « interne » dans les DevTools de Chrome quand HSTS est actif : le navigateur passe de lui-même de http:// à https://, sans contacter le serveur, et l’indique par Non-Authoritative Reason: HSTS.

Les moteurs de recherche traitent 307 comme temporaire, à l’image de 302, et les navigateurs ne le mettent pas en cache sans en-têtes explicites. Le corps doit pouvoir être renvoyé : fetch avec un corps ReadableStream en streaming ne peut pas suivre un 307 et échoue. Les navigateurs et curl suppriment l’en-tête Authorization quand une redirection part vers un autre hôte ; curl ne le conserve qu’avec --location-trusted. Utilisez curl -L pour le suivre : la méthode est conservée automatiquement.

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 307 Temporary Redirect

Comment l’envoyer

Node.js / Expressres.redirect(307, '/new-url')
Python / Flaskreturn redirect('/new-url', code=307)
nginxreturn 307 https://example.com$request_uri;

Comment le vérifier

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

Ouvrir l’outil Codes de statut HTTP