Informational (1xx)
Indicates that the request has been received and the process is continuing.
Continue - 100
This interim response indicates that the client should continue the request or ignore the response if the request is already finished.
Tip: Used when a request is large and the client is waiting for confirmation to continue.
Switching Protocols - 101
This code is sent in response to an Upgrade request header from the client and indicates the protocol the server is switching to.
Tip: Used to switch protocols like HTTP to WebSocket when requested by the client.
Processing (Deprecated) - 102
This code was used in WebDAV contexts to indicate that a request has been received by the server, but no status was available at the time of the response.
Tip: Rarely used. Indicates that processing is ongoing, especially for WebDAV operations.
Early Hints - 103
This status code is primarily intended to be used with the Link header, letting the user agent start preloading resources while the server prepares a response.
Tip: Helps browsers preload resources before full response is ready.
Success (2xx)
Indicates that the request was successfully received, understood, and accepted.
OK - 200
The request succeeded. The result depends on the HTTP method (GET, POST, PUT, etc.).
Tip: The most common status. Everything worked as expected.
Created - 201
The request succeeded, and a new resource was created as a result.
Tip: Indicates successful creation. Usually follows a POST request.
Accepted - 202
The request has been received but not yet acted upon. It may be processed asynchronously.
Tip: Used when processing happens asynchronously or by another service.
Non-Authoritative Information - 203
Returned metadata may not be from the origin server but a local or third-party copy.
Tip: Content is returned from a third-party cache or mirror.
No Content - 204
The server successfully processed the request, but there is no content to send in the response.
Tip: Useful for DELETE requests. No body returned but operation succeeded.
Reset Content - 205
Tells the user agent to reset the document which sent this request.
Tip: Used in UIs to signal the client to reset the form or page state.
Partial Content - 206
Used when the server is delivering only part of the resource due to a range header sent by the client.
Tip: Common in video streaming and range-based downloads.
Multi-Status - 207
Used in WebDAV to convey status for multiple independent operations.
Tip: Provides status for multiple related operations, used in WebDAV.
Already Reported - 208
Used inside WebDAV <propstat> elements to avoid repeating information about internal bindings.
Tip: Avoids duplication in WebDAV multi-binding responses.
IM Used - 226
Server fulfilled a GET request with a response that represents the result of instance manipulations.
Tip: Used when the response contains transformed content (e.g., delta encoding).
Redirection (3xx)
Indicates that further action needs to be taken by the user agent to fulfill the request.
Multiple Choices - 300
The request has more than one possible response. User or user agent should select one of them.
Tip: The client should choose one of the available options. Rarely used in practice.
Moved Permanently - 301
The URL of the requested resource has been permanently changed.
Tip: Use the new URL in future requests. Search engines update their links to the new one.
Found - 302
The requested resource resides temporarily under a different URI.
Tip: Temporary redirect. Use original URI for future requests.
See Other - 303
The response to the request can be found under another URI using a GET method.
Tip: Redirect using GET. Common after form submission or actions.
Not Modified - 304
Indicates that the resource has not been modified since the last request.
Tip: Used for caching. Saves bandwidth by reusing local cache.
Use Proxy - 305
Defined in a previous specification to indicate that a requested response must be accessed by a proxy. Deprecated due to security concerns.
Tip: Deprecated. Avoid using this code in new applications.
Unused - 306
This response code is no longer used, but is reserved.
Tip: Reserved for future use. Not actively used today.
Temporary Redirect - 307
Redirects to a different URI, but must use the same HTTP method as the original request.
Tip: Same method is retained (e.g., POST stays POST) in redirection.
Permanent Redirect - 308
Similar to 301, but the method and body are preserved across the redirect.
Tip: Use when both the URL and method should be preserved permanently.
Client Error (4xx)
The client seems to have erred. The request contains bad syntax or cannot be fulfilled.
Bad Request - 400
The server cannot or will not process the request due to client error.
Tip: Check request syntax and parameters. Ensure all required fields are provided.
Unauthorized - 401
Client must authenticate to get the requested response. "Unauthorized" means unauthenticated.
Tip: Provide valid authentication credentials.
Payment Required - 402
Reserved for digital payment systems; rarely used.
Tip: Implement payment workflow if needed.
Forbidden - 403
Client authenticated but does not have access rights to the content.
Tip: Check user permissions and roles.
Not Found - 404
Requested resource could not be found on the server.
Tip: Verify the URL or resource existence.
Method Not Allowed - 405
Request method is not supported by the target resource.
Tip: Use allowed HTTP methods only.
Not Acceptable - 406
Server cannot produce a response matching the list of acceptable values sent by the client.
Tip: Check Accept headers for supported content types.
Proxy Authentication Required - 407
Client must authenticate itself with the proxy.
Tip: Authenticate with proxy server.
Request Timeout - 408
Server timed out waiting for the request.
Tip: Retry the request after ensuring connectivity.
Conflict - 409
Request conflicts with the current state of the server.
Tip: Resolve conflicts before retrying.
Gone - 410
Requested resource is permanently deleted and no forwarding address is known.
Tip: Remove cached links to the resource.
Length Required - 411
Request rejected because Content-Length header is missing.
Tip: Include Content-Length header in request.
Precondition Failed - 412
Precondition given in request headers evaluated to false by server.
Tip: Verify preconditions before sending request.
Content Too Large - 413
Request entity is larger than limits defined by server.
Tip: Reduce the size of the request payload.
URI Too Long - 414
The URI requested is longer than the server is willing to interpret.
Tip: Use shorter URIs or POST data for large queries.
Unsupported Media Type - 415
The media format of the requested data is not supported by the server.
Tip: Check Content-Type header and use supported media types.
Range Not Satisfiable - 416
The range specified in the request cannot be fulfilled.
Tip: Verify Range headers are valid.
Expectation Failed - 417
The expectation given in the Expect request header could not be met by the server.
Tip: Adjust or remove Expect header.
I'm a teapot - 418
The server refuses to brew coffee with a teapot.
Tip: Easter egg status code.
Misdirected Request - 421
Request directed at a server that is not able to produce a response.
Tip: Verify target server.
Unprocessable Content - 422
Request well-formed but semantic errors prevent processing (WebDAV).
Tip: Fix semantic errors in request payload.
Locked - 423
Resource is locked (WebDAV).
Tip: Retry after lock is released.
Failed Dependency - 424
Request failed due to failure of a previous request (WebDAV).
Tip: Resolve previous errors first.
Too Early - 425
Server is unwilling to risk processing a request that might be replayed.
Tip: Retry later to avoid replay issues.
Upgrade Required - 426
Client should switch to a different protocol as requested by server.
Tip: Upgrade client protocol as indicated.
Precondition Required - 428
Origin server requires request to be conditional to prevent lost updates.
Tip: Add required precondition headers.
Too Many Requests - 429
User sent too many requests in a given time (rate limiting).
Tip: Slow down request rate or wait to retry.
Request Header Fields Too Large - 431
Server refuses to process request because headers are too large.
Tip: Reduce header size and retry.
Unavailable For Legal Reasons - 451
Resource is unavailable due to legal reasons like censorship.
Tip: Check legal access restrictions.
Server Error (5xx)
Indicates that the server failed to fulfill a valid request due to an error on the server side.
Internal Server Error - 500
The server has encountered a situation it does not know how to handle. This error is generic, indicating that the server cannot find a more appropriate 5XX status code to respond with.
Tip: Generic server error. Often indicates a bug or unexpected condition on the server.
Not Implemented - 501
The request method is not supported by the server and cannot be handled. The only methods that servers are required to support (and therefore that must not return this code) are GET and HEAD.
Tip: Indicates the server does not support the functionality required to fulfill the request.
Bad Gateway - 502
This error response means that the server, while working as a gateway to get a response needed to handle the request, got an invalid response.
Tip: Common in setups where a proxy or gateway fails to receive a valid response from an upstream server.
Service Unavailable - 503
The server is temporarily unavailable, often due to maintenance or overload. A user-friendly message should accompany this response. The Retry-After header indicates when the service will be available again. Caching should generally be disabled for this response.
Tip: Use Retry-After header to tell clients when to try again.
Gateway Timeout - 504
This error response is given when the server is acting as a gateway and cannot get a response in time.
Tip: Timeout between a proxy or gateway and an upstream server.
HTTP Version Not Supported - 505
The HTTP version used in the request is not supported by the server.
Tip: Server refuses to support the HTTP protocol version used in the request.
Variant Also Negotiates - 506
The server has an internal configuration error: during content negotiation, the chosen variant is configured to engage in content negotiation itself, causing circular references.
Tip: Rare error caused by server misconfiguration during content negotiation.
Insufficient Storage (WebDAV) - 507
The method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request.
Tip: Occurs when server storage limits are exceeded.
Loop Detected (WebDAV) - 508
The server detected an infinite loop while processing the request.
Tip: Indicates infinite processing loops detected by the server.
Not Extended - 510
The client request declares an HTTP Extension that should be used to process the request, but the extension is not supported by the server.
Tip: Used when the server refuses unsupported HTTP extensions.
Network Authentication Required - 511
Indicates that the client needs to authenticate to gain network access.
Tip: Requires network-level authentication before accessing resources.