The 3xx class indicates the client must take additional action to complete the request.
Table of 3xx Codes
Code | Name | Summary |
---|---|---|
300 | Multiple Choices | Several representations available. |
301 | Moved Permanently | Permanent redirect. |
302 | Found | Temporary redirect (legacy semantics). |
303 | See Other | Redirect to a different URI; use GET. |
304 | Not Modified | Cached representation is still valid. |
305 | Use Proxy | Deprecated. |
306 | (Unused) | Reserved. |
307 | Temporary Redirect | Temporary; method preserved. |
308 | Permanent Redirect | Permanent; method preserved. |
300 Multiple Choices
Rarely used on the public web; content negotiation is usually implicit.
301 Moved Permanently
Permanent relocation.
Caching: Heavily cached; clients may hardcode. Set long but deliberate TTLs.
SEO: Transfers ranking signals over time.
302 Found
Temporary redirect. Historical clients converted POST→GET; behavior varies. Prefer 307 for clear method preservation.
303 See Other
Used after non-GET actions to redirect to a resource via GET (e.g., POST/redirect/GET pattern).
304 Not Modified
Conditional request success. No body returned.
CDN: Saves bandwidth; origin must emit stable validators.
305 Use Proxy
Deprecated for security reasons.
306 Unused
Reserved; not used.
307 Temporary Redirect
Temporary and preserves method and body. Good for maintenance windows.
308 Permanent Redirect
Permanent and preserves method. Safer modern alternative to 301 for non-GET methods.
See also: dedicated redirects guide at /http/status-codes/redirects/
.