Redirect HTTP Status Codes (3xx)
Use this page when debugging canonicalization, domain migrations, trailing slash rules, and redirect chains across app, CDN, and origin.
What this group covers
3xx codes tell the client to fetch a different URL or reuse a stored response. Permanent vs temporary intent and method rewriting rules matter.
What to check first
- Trace full redirect chain and remove unnecessary hops.
- Validate Location headers are absolute/relative as expected by clients.
- Confirm whether request method must be preserved (307/308) or can change (301/302/303 behavior differs by client).
How related 3xx codes differ
301/308 are permanent; 302/307 are temporary. 303 explicitly redirects to a retrieval target. Pick the code that matches both duration and method behavior.
Redirect HTTP Status Codes (3xx) list with quick summaries
- HTTP 300 Multiple Choices — HTTP 300 Multiple Choices indicates a redirection response outcome.
- HTTP 301 Moved Permanently — HTTP 301 Moved Permanently indicates a redirection response outcome.
- HTTP 302 Found — HTTP 302 Found indicates a redirection response outcome.
- HTTP 303 See Other — HTTP 303 See Other indicates a redirection response outcome.
- HTTP 304 Not Modified — HTTP 304 Not Modified indicates a redirection response outcome.
- HTTP 305 Use Proxy — HTTP 305 Use Proxy indicates a redirection response outcome.
- HTTP 306 Unused — This code is unused and reserved in historical context.
- HTTP 307 Temporary Redirect — HTTP 307 Temporary Redirect indicates a redirection response outcome.
- HTTP 308 Permanent Redirect — HTTP 308 Permanent Redirect indicates a redirection response outcome.
When to escalate
Escalate when crawlers index the wrong URL, loops occur, or API clients fail due to method/body changes after redirect.
Next steps
Browse all status classes · Compare similar codes · Read implementation FAQ