HTTP 307 Temporary Redirect
Um redirecionamento temporário estrito: vá para a outra URL, e repita a requisição exatamente como você a enviou.
O que significa o HTTP 307
HTTP 307 Temporary Redirect funciona como o 302 com uma garantia adicional: o cliente deve repetir a requisição para a nova URL com o mesmo método e corpo. Um POST redirecionado continua sendo um POST — nada é convertido silenciosamente para GET.
Navegadores também geram 307 internamente: quando um site está na lista de preload HSTS, o navegador atualiza http:// para https:// por conta própria e mostra "307 Internal Redirect" no DevTools sem nenhuma requisição de rede.
Causas comuns de respostas 307
- Uma API redireciona uma requisição POST/PUT para outro endpoint temporariamente.
- HSTS: o navegador atualiza http:// para https:// internamente (mostrado como 307 no DevTools).
- Descarga de carga ou janelas de manutenção que redirecionam gravações para um endpoint em standby.
Boas práticas para desenvolvedores
- Use 307 sempre que uma requisição redirecionada tiver um corpo que precise sobreviver ao salto.
- Para mudanças permanentes que preservam o método, use 308 em vez disso.
- Lembre-se de que os clientes reenviam o corpo completo — evite 307 para uploads muito grandes se você puder apontar os clientes para a URL correta desde o início.
Exemplo de resposta
HTTP/1.1 307 Temporary Redirect Location: https://api.example.com/v2/orders Retry-After: 0
Perguntas frequentes
Qual é a diferença entre 302 e 307?
Ambos são temporários, mas 307 proíbe a mudança do método da requisição — um POST é repetido como POST. Com 302, os navegadores historicamente mudam para GET.
Por que o DevTools mostra "307 Internal Redirect"?
O navegador atualizou a requisição para HTTPS por conta própria (HSTS) sem contatar o servidor. É exibido como um 307 sintético.
Existe uma versão permanente do 307?
Sim — 308 Permanent Redirect: mesma regra de preservação de método, mas caches e mecanismos de busca tratam a mudança como permanente.