O recurso está temporariamente em outra URL.
Quando usar
Redirecionamentos temporários. Os clientes podem mudar POST para GET; prefira 303 ou 307 para ser explícito.
Bom saber
Use 302 quando a URL original vai voltar: uma página de manutenção temporária, um teste A/B, um redirecionamento de login ou a seleção de idioma. Os mecanismos de busca mantêm a URL original indexada, embora o Google passe a tratar como permanente um 302 que fica por meses. Os navegadores não armazenam um 302 em cache, a menos que Cache-Control ou Expires digam isso, o que o torna a escolha segura enquanto você ainda está testando redirecionamentos.
Historicamente, os navegadores transformam um POST em GET ao seguir um 302 e descartam o corpo, e a especificação agora permite isso. Se o método precisa ser mantido, use 307; depois do envio de um formulário, use 303 para ser explícito. Um bug comum é um loop de redirecionamento entre http e https, ou entre www e o domínio sem www, muitas vezes causado por um proxy ou pelo Flexible SSL da Cloudflare. Siga a cadeia com curl -IL.
Redirecionamento (3xx)
Os códigos 3xx são redirecionamentos: o cliente precisa ir para outro lugar, ou usar a cópia em cache, para concluir a requisição.
Como fica
HTTP/1.1 302 FoundComo enviar
| Node.js / Express | res.redirect(302, '/new-url') |
|---|---|
| Python / Flask | return redirect('/new-url', code=302) |
| nginx | return 302 https://example.com$request_uri; |
Como verificar
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/