HTTP Status Codes Reference
Every HTTP status code you'll actually encounter, with what servers mean when they send it, how clients should react, and — for errors — the common causes and how to fix them. Each code links to a dedicated page with full context, examples, and cross-references to similar codes.
1xx Informational
100 Continue
Server received the request headers and the client should proceed with the request body.
101 Switching Protocols
Server is switching to a different protocol (usually WebSockets or HTTP/2).
103 Early Hints
Server is sending hints (usually Link: preload headers) before the final response.
2xx Success
200 OK
The request succeeded and the response body contains the requested data.
201 Created
Request succeeded and a new resource was created as a result.
202 Accepted
Request was accepted for processing but not yet completed.
204 No Content
Request succeeded but there is no body in the response.
206 Partial Content
Server is returning part of a resource due to a Range header from the client.
3xx Redirection
301 Moved Permanently
The resource has permanently moved to a new URL — clients and search engines should update their references.
302 Found
Resource is temporarily at a different URL — do not update bookmarks or search engine indexes.
304 Not Modified
The cached copy the client already has is still valid — no body sent.
307 Temporary Redirect
Same as 302 but explicitly preserves the HTTP method — POST stays POST.
308 Permanent Redirect
Same as 301 but explicitly preserves the HTTP method — POST stays POST.
4xx Client Errors
400 Bad Request
Server cannot process the request due to a client-side error — malformed syntax, invalid JSON, missing required fields.
401 Unauthorized
Authentication is required and either missing or invalid — the client is not identified.
403 Forbidden
Server understood who you are but refuses to authorize the request — permission denied.
404 Not Found
The requested URL does not exist on this server.
405 Method Not Allowed
The URL exists but doesn't support the HTTP method the client used.
408 Request Timeout
Client took too long to send the request — server gave up waiting.
409 Conflict
Request conflicts with the current state of the resource — someone else changed it, or you're creating a duplicate.
410 Gone
Resource was here but is permanently deleted — not coming back.
413 Payload Too Large
Request body is larger than the server will accept.
415 Unsupported Media Type
The Content-Type of the request body is not one the server can process.
418 I'm a Teapot
The server refuses to brew coffee because it is a teapot. Yes, really.
422 Unprocessable Entity
Request is syntactically valid but the data inside it is invalid — validation failed.
429 Too Many Requests
You're being rate limited — slow down and try again after the specified time.
431 Request Header Fields Too Large
The combined size of the request headers exceeds the server limit.
5xx Server Errors
500 Internal Server Error
Something went wrong on the server side — usually an unhandled exception.
501 Not Implemented
Server doesn't support the functionality required to fulfill the request.
502 Bad Gateway
A gateway or proxy received an invalid response from the upstream server.
503 Service Unavailable
Server is temporarily unable to handle the request — overloaded or down for maintenance.
504 Gateway Timeout
A gateway or proxy timed out waiting for a response from the upstream server.
Related references
- → HTTP Status Codes Cheat Sheet — all codes on one page
- → HTTP Headers Reference — every common request + response header
- → HTTP MIME Types Reference — Content-Type values
- → What is CORS? — the source of many 403 and preflight errors