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.