307 Temporary Redirect signifie que la ressource cible se trouve temporairement à l’URL indiquée dans l’en-tête Location, et que le client ne doit pas changer la méthode de la requête en suivant la redirection. Un POST reste un POST avec le même corps, et un PUT reste un PUT. Les requêtes futures doivent toujours viser l’URL d’origine. Une réponse 307 n’est pas mise en cache par défaut.
HTTP/1.1 a introduit le code 307 pour lever l’ambiguïté de 302 Found, que les navigateurs suivent en GET après un POST. Utilisez-le pour les redirections temporaires de points de terminaison d’API, d’envois de fichiers et d’envois de formulaires, ou partout où la méthode doit être conservée.
Dans les outils de développement du navigateur, vous pouvez voir 307 Internal Redirect après avoir saisi l’adresse http:// d’un site qui utilise HSTS. Cette redirection est générée par le navigateur lui-même à partir de sa liste HSTS et n’a jamais atteint le serveur ; la redirection propre au serveur peut très bien être une 301. Une vérification côté serveur, comme le Vérificateur de redirection HTTPS de TrueURL, montre ce que le serveur envoie réellement.
Exemple de réponse
HTTP/1.1 307 Temporary Redirect
Date: Fri, 06 Nov 2026 10:15:32 GMT
Location: https://eu.api.example.com/v1/upload
Cache-Control: no-store
Content-Length: 0 SEO et vérification des redirections
Google traite la 307 comme la 302 : une redirection temporaire et un signal canonique faible, si bien que l’URL d’origine reste généralement indexée. C’est approprié pour les situations temporaires ; pour les déplacements définitifs, utilisez 308 ou 301. Certains frameworks produisent une 307 par défaut. Next.js, par exemple, utilise 307 pour les redirections avec permanent: false et 308 pour permanent: true : vérifiez donc ce que génère votre configuration.
Causes fréquentes et cas d’usage
- Une API ou un point de terminaison d’envoi de fichiers a été déplacé temporairement, et les corps des requêtes
POSTdoivent survivre à la redirection. - Une maintenance, une répartition de charge ou un routage régional envoie les requêtes ailleurs pendant un temps.
- La redirection temporaire par défaut d’un framework, comme Next.js avec
permanent: falseouRedirectResponsedans Starlette et FastAPI. - Le « 307 Internal Redirect » lié à HSTS dans les outils de développement du navigateur, qui provient du navigateur et non du serveur.