302 Found

The resource is temporarily at a different URL.

What 302 means

302 signals a temporary redirect: use the Location URL for this request, but keep using the original URL in future. It is the historical default for post-login redirects, temporary maintenance pages, and anywhere the destination varies.

Its behaviour is genuinely ambiguous, which is why 303 and 307 exist. The specification says the method should not change, but browsers have always changed POST to GET when following a 302, and that behaviour is now so entrenched that it is effectively the standard. So in practice a redirected POST loses its body.

If you want that GET conversion explicitly - the classic POST-then-redirect-to-a-result-page pattern - use 303 See Other, which mandates it. If you want the method preserved, use 307 Temporary Redirect, which forbids changing it. 302 is the one that leaves everyone guessing.

Headers this status expects

  • Location - the temporary URL. Required.

Should a client retry?

Follow the redirect. Do not cache it as permanent.

FAQ

What is the difference between 302, 303 and 307?
All three are temporary. 302 is ambiguous about the method and in practice turns POST into GET. 303 explicitly requires the client to switch to GET - the right choice after a form submission. 307 explicitly forbids changing the method, so a POST stays a POST with its body intact.
Why did my POST become a GET after a 302?
Because browsers have always done that, whatever the specification says. Use 307 to preserve the method and body, or 303 if converting to GET is what you actually want.
Does a 302 affect SEO?
It tells search engines the move is temporary, so they keep the original URL indexed and do not transfer ranking signals. Use 301 or 308 for a permanent move.

Often confused with