<- back
# Response Codes Basics
Posted on Jan 31, 2026
Five families of responses exist, namely:
- 1xx - these are called Informational Responses, they are normally hidden by the browser but they are important for websockets and streaming.
- 2xx - these are the successful responses.
- 3xx - these are called redirection messages
- 4xx - these are called client error responses, usually the client's fault
- 5xx - these are called server error responses
- You may get other codeds that are non-standard or custom to the server's software
## 1xx - Informational Responses
- 100 Continue
- 101 Switching Protocols
- 102 Processing
- 103 Early Hints
This is the interim response which indicate that the client should continue the request or ignore the response if the request is finished
This is the codee that is sent when an Upgrade request header from client indicates a switch in the protocol
This code indicates that the server is working on the request and does not have a response yet, but the client should not timeout or retry
Tries to tell the client "The final response is coming, but start preloading to save time"
## 2xx - Successful Responses
- 200 OK
- 201 Created
- 202 Accepted
- 203 Non-Authoritative Info
- 204 No Content
- 205 Reset
- 206 Partial Content
The request succeeded. The result and meaning of "success" depends on the HTTP method
A new resource was created as a result, typically a response to POST or PUT requests
The request has been received but not yet acted upon
Response data is valid but it didn't come directly from the original server
The request succeeded, but there's nothing to send back beyond the headers
It tells the client to clear or reset the current view
The server is returning only a specific portion of the resource
## 3xx - Redirection Responses
- 300 Multiple Choices
- 301 Moved Permanently
- 302 Found
- 303 See Other
- 304 Not Modified
- 305 Use Proxy
- 307 Temporary Redirect
- 308 Permanent Redirect
there are several possible resources the client could use, and it must choose one
the requested resource has a new permanent URL and future requests should use it
the requested resource is temporarily available at a different URL
the client should retrieve the result from another URL using a GET request
the cached version of the resource is still valid and no new content is sent
the request must be made through a specific proxy, which is now largely obsolete
the resource has temporarily moved and the original request method must be preserved
the resource has permanently moved and the original request method must be preserved
## 4xx - Client Error Messages
- 400 Bad Request
- 401 Unauthorized
- 403 Forbidden
- 404 Not Found
- 405 Method Not Allowed
- 409 Conflict
- 410 Gone
- 413 Content Too Large
- 415 Unsupported Media Type
- 418 I'm a teapot
- 422 Unprocessable Content
- 426 Upgrade Required
- 429 Too Many Requests
- 451 Unavailable For Legal Reasons
the server cannot understand the request because it is malformed or invalid
the request requires authentication and the client has not provided valid credentials
the server understands who the client is but refuses to allow access
the server cannot find the requested resource
the request method is valid but not allowed for this resource
the request conflicts with the current state of the resource
the resource once existed but has been permanently removed
the request body is larger than what the server is willing to process
the server does not support the format of the data sent in the request
the server refuses to perform the request as a joke response
the request is syntactically valid but semantically incorrect
the server requires the client to switch to a different protocol
the client has sent too many requests in a short period of time
the resource cannot be served due to legal restrictions
## 5xx - Server Error Messages
- 500 Internal Server Error
- 501 Not Implemented
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
- 507 Insufficient Storage
- 508 Loop Detected
- 511 Network Authentication Required
the server failed in an unexpected way and does not know how to handle the request
the server does not support the request method and cannot fulfill it
the server received an invalid response from an upstream server
the server is temporarily unable to handle the request due to overload or maintenance
the server did not receive a response in time from an upstream server
the server cannot complete the request because it has run out of storage
the server detected an infinite loop while processing the request
the client must authenticate to gain access to the network before the request can succeed
While I intended to avoid this blog becoming a dry reference table for obscure topics, the last blog and this one are quite literally just tables of information broken down into smaller sections of tables of information. Quality will pickup with time