302 Found
The resource is temporarily at a different URL. Keep using the original URL for future requests.
Status
HTTP/1.1 302 Found
Details
- Category: 3xx
- Status: Standard. Registered with IANA and defined by a current standards-track RFC.
- Specification: RFC 9110 §15.4.3
- Cacheable: Only with explicit cache headers
- Response body: Allowed
- Retry: Safe to retry
302 is the most common redirect on the web and also the most misused. It means the move is temporary, so clients must not update stored links and search engines keep indexing the original URL.
Its history is messy. The original spec required the method to be preserved, but browsers converted POST to GET anyway, so RFC 9110 documents that behavior as allowed. Modern code should use 303 to force a GET or 307 to preserve the method, and reserve 302 for legacy compatibility.
Headers
- Location: Required. The temporary URL to follow.
Common causes
- A login flow bounced an unauthenticated request to a sign-in page.
- A framework's default redirect helper, most of which emit 302 unless told otherwise.
- Geographic or A/B routing sending a visitor to a variant of the site.
How to fix it
As the client
- Follow Location but keep requesting the original URL next time.
- Watch for a redirect to a login or challenge page, which in an automated context usually means the session or the IP was rejected.
As the server
- Use 301 or 308 when the move is actually permanent, so ranking signals transfer.
- Use 303 after a form POST so a browser refresh does not resubmit the form.
Examples
GET /account HTTP/1.1 Host: app.example.com HTTP/1.1 302 Found Location: /login?next=%2Faccount
Notes for proxy users
In scraping, a sudden 302 to a captcha or consent page is the usual shape of a soft block. Rotating to a clean IP or slowing the request rate resolves it more often than changing the request itself.