HTTP response status codes indicate whether a specific HTTP request has completed successfully. The answers are grouped into five classes:
  • 100: Informative Answers
  • 200: Satisfactory answers
  • 300: Redirects
  • 400: Customer errors
  • 500: Server errors
Informative response
  • 100 - Continue:
    This tentative response indicates that everything so far is fine and that the client should continue with the request or ignore it if it is already finished.
  • 101 - Switching Protocol:
    Indicates that the server accepts the protocol change proposed by the user agent.
  • 102 - Processing:
    This code indicates that the server has received the request and is still processing it, so no response is available.
  • 103 - Early Hints:
    Allowing the user agent to begin pre-fetching (en-US) resources while the server prepares a response.
Satisfactory answers
  • 200 - Okay:
    The request has been successful. The meaning of a success varies depending on the HTTP method
  • 201 - Created:
    The request was successful and a new resource was created as a result. This is typically the response sent after a PUT request.
  • 202 - Accepted:
    The request has been received, but has not yet been acted upon. It is an "uncommitted" request, meaning that there is no way in HTTP to allow an asynchronous response to be sent indicating the result of processing the request. It is intended for cases where another process or server handles the request, or for the batch processing.
  • 203 - Non-Authoritative Information:
    The request has been completed successfully, but its content has not been obtained from the originally requested source, but is collected from a local copy or from a third party. Except this condition, a response of 200 OK should be preferred instead of this response.
  • 204 - No Content:
    The request completed successfully but its response has no content, although headers may be useful. The user agent can update its cached headers for this resource with the new values.
  • 205 - Reset Content:
    The request has been completed successfully, but its response has no content and in addition, the user agent has to initialize the page from which the request was made, this code is useful for example for pages with forms whose content must be deleted after for the user to send it.
  • 206 - Partial Content:
    The request will partially serve the requested content. This feature is used by download tools such as wget to continue the transfer of previously interrupted downloads, or to split a download and process the parts simultaneously.
  • 207 - Multi-Status:
    A Multi-State response transmits information about multiple resources in situations where multiple status codes might be appropriate. The body of the request is an XML message.
  • 208 - Multi-Status:
    The list of DAV elements was previously notified, so they will not be listed again.
  • 226 - IM Used:
    The server has fulfilled a GET request for the resource and the response is a representation of the result of one or more instance manipulations applied to the current instance.
Redirects
  • 300 - Multiple Choice:
    This request has more than one possible answer. User-Agent or the user must choose one of them. There is no standardized way to select one of the answers.
  • 301 - Moved Permanently:
    This response code means that the URI of the requested resource has been changed. A new URI will probably be returned in the response.
  • 302 - Found:
    This response code means that the requested URI resource has been temporarily changed. New changes to the URI will be added in the future. Therefore, the same URI must be used by the client in future requests.
  • 303 - See Other:
    The server sends this response to direct the client to a new resource requested at another address using a GET request.
  • 304 - Not Modified:
    This is used for "caching" purposes. It tells the client that the response has not been modified. The client can then continue using the same version stored in its cache.
  • 305 - Use Proxy:
    It was defined in a previous version of the HTTP protocol specification to indicate that a requested response must be accessed from a proxy. It has been deprecated due to security concerns associated with configuring a proxy.
  • 307 - Temporary Redirect:
    The server sends this response to direct the client to obtain the requested resource at another URI with the same method used in the previous request. It has the same semantics as the HTTP 302 Found response code, with the exception that the user agent must not change the HTTP method used: if a POST was used in the first request, another POST must be used in the second request.
  • 308 - Permanent Redirect:
    It means that the resource is now permanently located at another URI, specified by the Location: HTTP header response. It has the same semantics as the 301 Moved Permanently HTTP response code, with the exception that the user agent must not change the HTTP method used: if a POST was used in the first request, another POST must be used in the second request.
Customer errors
  • 400 - Bad Request:
    This response means that the server could not interpret the request given invalid syntax.
  • 401 - Unauthorized:
    Authentication is required to obtain the requested response. This is similar to 403, but in this case, authentication is possible.
  • 402 - Payment Required:
    This response code is reserved for future use. The initial objective of creating this code was to be used in digital payment systems. However, it is not currently being used.
  • 403 - Forbidden:
    The client does not have the necessary permissions for certain content, so the server is refusing to provide an appropriate response.
  • 404 - Not Found:
    The server could not find the requested content. This response code is one of the most famous given its high occurrence on the web.
  • 405 - Method Not Allowed:
    The requested method is known to the server but has been disabled and cannot be used. The two required methods, GET and HEAD, should never be disabled and should not return this error code.
  • 406 - Not Acceptable:
    This response is sent when the server, after applying a server-driven (en-US) content negotiation, does not find any content matching the criteria given by the user.
  • 407 - Proxy Authentication Required:
    his is similar to the 401 code, but the authentication must be done from a proxy.
  • 408 - Request Timeout:
    This response is sent on an idle connection on some servers, even without any prior request from the client. It means that the server wants to disconnect this unused connection. This response is widely used since some browsers, such as Chrome, Firefox 27+, or IE9, use HTTP pre-connection mechanisms to speed up browsing. Also keep in mind that some servers simply disconnect the connection without sending this message.
  • 409 - Conflict:
    This response can be sent when a request conflicts with the current state of the server.
  • 410 - Gone:
    This response can be sent when the requested content has been deleted from the server.
  • 411 - Length Required:
    The server rejects the request because the Content-Length header field is not defined and the server requires it.
  • 412 - Precondition Failed:
    The client has indicated pre-conditions in its headers which the server does not meet.
  • 413 - Payload Too Large:
    The request entity is longer than the limits defined by the server; the server can close the connection or return a Retry-After header field.
  • 414 - URI Too Long:
    The URI requested by the client is longer than the server is willing to interpret.
  • 415 - Unsupported Media Type:
    The multimedia format of the requested data is not supported by the server, so the server rejects the request.
  • 416 - Requested Range Not Satisfied:
    The range specified by the Range header field in the request does not comply; It is possible that the range is outside the target data size of the URI.
  • 417 - Expectation Failed:
    It means that the expectation indicated by the requested Expect header field cannot be met by the server.
  • 421 - MisdirectedRequest:
    The request was directed to a server that is not capable of producing a response. This can be sent by a server that is not configured to produce responses by the combination of the schema and authority that are included in the requested URI
  • 422 - Unprocessable Entity:
    The request was well formed but could not be followed due to semantic errors.
  • 423 - Locked:
    The resource being accessed is locked.
  • 424 - Failed Dependency:
    The petition failed due to a failure of a previous petition.
  • 426 - Upgrade Required:
    The server refuses to implement the request using the current protocol but may be willing to do so after the client upgrades to a different protocol. The server sends an Upgrade header in a response to indicate the required protocols.
  • 428 - Precondition Required:
    The origin server requires that the request be conditional. It is intended to prevent 'lost update' problems, where a client GETS a state from the resource, modifies it, and PUTS it back to the server, when a third party has modified the state of the server, leading to a - conflict.
  • 429 - Too Many Requests:
    The user has submitted too many requests in a given period of time.
  • 431 - Request Header Fields Too Large:
    The server is unwilling to process the request because the header fields are too long. The request MAY be re-uploaded after reducing the size of the requested header fields.
Server errors
  • 500 - Internal Server Error:
    The server has encountered a situation that it doesn't know how to handle.
  • 501 - Not Implemented:
    The requested method is not supported by the server and cannot be handled. The only methods that servers require to support (and therefore should not return this code) are GET and HEAD.
  • 502 - Bad Gateway:
    This error response means that the server, while working as a gateway to obtain a response necessary to handle the request, got an invalid response.
  • 503 - Service Unavailable:
    The server is not ready to handle the request. Common causes could be that the server is down for maintenance or is overloaded.
  • 504 - Gateway Timeout:
    This error response is given when the server is acting as a gateway and cannot get a response in time.
  • 505 - HTTP Version Not Supported:
    The HTTP version used in the request is not supported by the server.
  • 506 - Variant Also Negotiates:
    The server has an internal configuration error: Transparent content negotiation for the request results in a circular reference.
  • 507 - Insufficient Storage:
    The server has an internal configuration error: the chosen resource variable is configured to engage transparent content negotiation itself, and is therefore not a suitable endpoint for the negotiation process.
  • 508 - Loop Detected:
    The server detected an infinite loop while processing the request.
  • 510 - Not Extended:
    Additional extensions to the request are required for the server to fulfill.
  • 511 - Network Authentication Required:
    Status code 511 indicates that the client needs to authenticate to gain access to the network.