HTTP Status Codes
500-range
500 | Internal Server Error | An unexpected error occurred on the server, the request will not be fulfilled. No more specific error was suitable (or maybe the server just doesn not want to specify exactly what went wrong) |
501 | Not Implemented | Request method isn't implemented. Yet. |
502 | Bad Gateway | Server is acting as a proxy and got an invalid response the other server |
503 | Service Unavailable | Server cannot handle the request. Usually because it is down or overloaded. Temporarily. |
504 | Gateway Timeout | Usually happens when your server is acting as a proxy and the other server timed out |
505 | HTTP Version Not Supported | HTTP protocol version used in the request is not supported by the server. |
506 | Variant Also Negotiates | Circular reference. The server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself, and is therefore not a proper end point in the negotiation process. |
507 | Insufficient Storage | Server is unable to store the representation needed to complete the request. |
508 | Loop Detected | Server detected an infinite loop while processing the request (instead of 208 Already Reported) |
510 | Not Extended | The policy for accessing the resource has not been met in the request. Server should send back all the information necessary for the client to issue an extended request. |
400-range
400 | 400 Bad Request | Server can't or won't process request. Commonly due to the request having incorrect path or queryparams. Can also happen when the request is too large. |
401 | Unauthorized | Similar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet been provided. Note: Some sites incorrectly issue HTTP 401 when an IP address is banned from the website (usually the website domain) and that specific address is refused permission to access a website. |
402 | Payment Required | Reserved for future use. The original intention was that this code might be used as part of some form of digital cash or micropayment but that has not yet happened, and this code is not widely used. |
403 | Forbidden | Server refuses to perform requerst. Normally due to missing permissions or a prohibited action (like creating a duplicate) |
404 | Not Found | The requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible. |
405 | Method Not Allowed | A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource. |
406 | Not Acceptable | Server can't serve response matching request headers. (Example: it serves 'application/json' but request included 'Accept: application/xml') |
407 | Proxy Authentication required | The client must first authenticate itself with the proxy. |
408 | Request Timeout | Server timed out waiting for the request. Maybe try again at a later time? |
409 | Conflict | The request could not be processed because of conflict in the current state of the resource, such as an edit conflict between multiple simultaneous updates |
410 | Gone | Resource has been intentionally removed forever |
411 | Length Required | The request did not specify the length of its content, which is required by the requested resource. |
412 | Precondition Failed | Server does not meet one of the preconditions that the requester put on the request header fields. |
413 | Payload Too Large | The request is larger than the server is willing or able to process. Previously called "Request Entity Too Large". |
414 | URI Too Long | The URI provided was too long for the server to process. Often the result of too much data being encoded as a query-string of a GET request, in which case it should be converted to a POST request. Called "Request-URI Too Long" previously. |
415 | Unsupported Media Type | The request entity has a media type which the server or resource does not support. For example, the client uploads an image as image/svg+xml, but the server requires that images use a different format. |
416 | Range Not Satisfiable | The client has asked for a portion of the file (byte serving), but the server cannot supply that portion. For example, if the client asked for a part of the file that lies beyond the end of the file. Called "Requested Range Not Satisfiable" previously. |
417 | Expectation Failed | Server cannot meet the requirements of the Expect request-header field. |
418 | I'm a teapot | Easter egg from 1998 as one of the traditional IETF April Fools jokes |
421 | Misdirected Request | The request was directed at a server that is not able to produce a response (for example because of connection reuse). |
422 | Unprocessable Entity | The request was well-formed but was unable to be followed due to semantic errors. |
423 | Locked | The resource that is being accessed is locked |
424 | Failed Dependency | The request failed because it depended on another request and that request failed (e.g., a PROPPATCH). |
425 | Too Early | Server is unwilling to risk processing a request that might be replayed |
426 | Upgrade Required | The client should switch to a different protocol such as TLS/1.3, given in the Upgrade header field. |
428 | Precondition Required | The origin server requires the request to be conditional. Intended to prevent the 'lost update' problem, where a client GETs a resource's state, modifies it, and PUTs it back to the server, when meanwhile a third party has modified the state on the server, leading to a conflict. |
429 | Too Many Requests | There's rate-limiting and the user has sent too many requests in a given amount of time. |
431 | Request Header Fields Too Large | Either an individual header field, OR all header fields collectively, are too large - according to this server. |
451 | Unavailable For Legal Reasons | A server operator has received a legal demand to deny access to a resource or to a set of resources that includes the requested resource. |
300-range
300 | Multiple Choices | Indicates multiple options for the resource from which the client may choose (For example, this code could be used to present multiple video format options). |
301 | Moved Permanently | This and all future requests should be directed to the given URI. |
302 | Found | Obsolete code (Previously 302 meant "Moved temporarily") that has now been replaced by 303 or 307. Tells the client to browse to another URL. The resource was found, but at a different location. Future requests should still use the original URI. |
303 | See Other | The response to the request can be found under another URI using the GET method. When received in response to a POST (or PUT/DELETE), the client should presume that the server has received the data and should issue a new GET request to the given URI. |
304 | Not Modified | The resource has not been modified since the version specified by the request headers If-Modified-Since or If-None-Match. In such case, there is no need to retransmit the resource since the client still has a previously-downloaded copy. |
305 | Use Proxy | The requested resource is available only through a proxy. The address might be provided in the response, but many HTTP clients (such as FF and IE) do not obey this status code due to security reasons. |
307 | Temporary Redirect | The request should be repeated with another URI. However, unlike a 301, future requests should still use the original URI. |
308 | Permanent Redirect | The request and all future requests should be repeated using another URI. 307 and 308 parallel the behaviors of 302 and 301, but do not allow the HTTP method to change. So, for example, submitting a form to a permanently redirected resource may continue smoothly. |
200-range
200 | OK | Success! You'll get a response. |
201 | Created | The request has been fulfilled, resulting in the creation of a new resource. |
202 | Accepted | The request has been accepted for processing, but the processing has not been completed. |
203 | Non-Authoritative Information | Server is a transforming proxy that received a 200 OK from its origin, but is returning a modified version of the origin's response. |
204 | No Content | Server successfully processed the request, and is not returning any content. |
205 | Reset Content | Server successfully processed the request, asks that the requester reset its document view, and is not returning any content. |
206 | Partial content | Server is delivering only part of the resource (byte serving) due to a range header sent by the client. The range header is used by HTTP clients to enable resuming of interrupted downloads, or split a download into multiple simultaneous streams. |
100-range
100 | Continue | Server has received the request headers and the client should proceed to send the request body. The purpose of the 100 status is to allow a client to determine if the origin server is willing to accept the request (based on the request headers) before the client sends the request body. |
102 | Processing | A WebDAV request may contain many sub-requests involving file operations, requiring a long time to complete the request. This code indicates that the server has received and is processing the request, but no response is available yet. This prevents the client from timing out and assuming the request was lost. |
103 | Early Hints | Used to return some response headers before final HTTP message. |