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.