Skip to content
Search

HTTP Status Code

lastmod 2025-10-02created 2014-10-2011 edits

Below is a list of HTTP (Hypertext Transfer Protocol) response status codes.

IANA currently maintains the official HTTP status code registry.

1xx (Informational)

The request was received and processing continues.1

  • 100 Continue - The requester should continue with the request. The server returns this code to indicate that it has received the first part of the request and is waiting for the rest.
  • 101 Switching Protocols - The requester has asked the server to switch protocols and the server is acknowledging it.
  • 102 Processing (RFC 2518)
  • 103 Early Hints

2xx (Success)

Status codes in this class indicate that the action requested by the client was received, understood, accepted, and processed successfully.

  • 200 OK - The server processed the request successfully. This usually means the server delivered the requested page.
  • 201 Created - The request succeeded and the server created a new resource.
  • 202 Accepted - The server accepted the request but has not processed it yet.
  • 203 Non-Authoritative Information - The server processed the request successfully but is returning information received from another source.
  • 204 No Content - The server processed the request successfully but is not returning any content.
  • 205 Reset Content - The server processed the request successfully but is not displaying content. Unlike a 204 response, this response requires the requester to reset the document view (e.g., clearing a form for new input).
  • 206 Partial Content - The server successfully processed only part of a GET request.
  • 207 Multi-Status (RFC 4918)
  • 208 Already Reported (RFC 5842)
  • 226 IM Used (RFC 3229)

3xx (Redirection)

The client must take additional action to complete the request.2

  • 300 Multiple Choices - The server can choose among several actions in response to the request. The server either selects an action based on the user agent or provides a list of actions for the requester to choose from.
  • 301 Moved Permanently - The requested page has been permanently moved to a new location. When this response is returned to a GET or HEAD request, the requester is automatically forwarded to the new location.
  • 302 Found (Moved Temporarily) - The server is currently responding to the request with a page from a different location, but the requester should continue to use the original location for future requests.
  • 303 See Other - The server returns this code when the requester should make a separate GET request to a different location to retrieve the response. All requests other than HEAD are automatically forwarded to the other location.
  • 304 Not Modified - The requested page has not been modified since the last request. When the server returns this response, it does not return the page content. The server should be configured to return this response (called the If-Modified-Since HTTP header) if the page has not changed since the requester last requested it.
  • 305 (Use Proxy) - The requester can access the requested page only through a proxy. When the server returns this response, it also indicates the proxy the requester should use.
  • 307 Temporary Redirect - The server is currently responding to the request with a page from a different location, but the requester should continue to use the original location for future requests.
  • 308 Permanent Redirect (experimentally approved in an RFC)

4xx (Client error)

Status codes in the 4xx class indicate an error on the client side.

  • 400 Bad Request - The server did not understand the syntax of the request.
  • 401 Unauthorized - This request requires authentication. The server may return this for pages that require login.
  • 402 Payment Required
  • 403 Forbidden - The server is refusing the request.
  • 404 Not Found - The server cannot find the requested page. For example, the server returns this code when a request is made for a page that does not exist on the server.
  • 405 Method Not Allowed - The method specified in the request cannot be used.
  • 406 Not Acceptable - The requested page cannot respond with the requested content characteristics.
  • 407 Proxy Authentication Required - This status code is similar to 401 (Unauthorized), but the requester must authenticate using a proxy. When the server returns this response, it also indicates the proxy the requester should use.
  • 408 Request Timeout - The server timed out waiting for the request.
  • 409 Conflict - The server encountered a conflict while fulfilling the request. The server must include information about the conflict in its response. The server should return this code, along with a list of differences between the requests, in response to a PUT request that conflicts with another PUT request.
  • 410 Gone - The server returns this response when the requested resource has been permanently deleted. It is similar to the 404 (Not Found) code and is sometimes used instead of 404 for resources that existed before but no longer exist. If the resource has been permanently moved, use 301 to specify the new location of the resource.
  • 411 Length Required - The server does not accept the request without a valid Content-Length header field.
  • 412 Precondition Failed - The server does not meet one of the preconditions the requester placed on the request.
  • 413 Content Too Large (Request Entity Too Large) - The request is too large for the server to process.
  • 414 URI Too Long (Request-URI Too Long) - The request URI (usually a URL) is too long for the server to process.
  • 415 Unsupported Media Type - The request is in a format not supported by the requested page.
  • 416 Range Not Satisfiable (Requested Range Not Satisfiable) - The server returns this status code when the request asks for a range the page cannot provide.
  • 417 Expectation Failed - The server cannot meet the requirements of the Expect request header field.
  • 418 I'm a teapot (RFC 2324)
  • 420 (Enhance Your Calm, Twitter)
  • 421 Misdirected Request
  • 422 Unprocessable Content (Unprocessable Entity, WebDAV; RFC 4918)
  • 423 Locked (WebDAV; RFC 4918)
  • 424 Failed Dependency (WebDAV; RFC 4918)
  • or 424 (Method Failure, WebDAV)
  • 425 Too Early (Unordered Collection, Internet Draft)
  • 426 Upgrade Required (RFC 2817)
  • 428 Precondition Required (RFC 6585)
  • 429 Too Many Requests (RFC 6585)
  • 431 Request Header Fields Too Large (RFC 6585)
  • 444 (No Response, Nginx)
  • 449 (Retry With, Microsoft)
  • 450 (Blocked by Windows Parental Controls, Microsoft)
  • 451 Unavailable For Legal Reasons (Internet Draft)
  • or 451 (Redirect, Microsoft)
  • 494 (Request Header Too Large, Nginx)
  • 495 (Cert Error, Nginx)
  • 496 (No Cert, Nginx)
  • 497 (HTTP to HTTPS, Nginx)
  • 499 (Client Closed Request, Nginx)

5xx (Server error)

Indicates that the server clearly failed to fulfill a valid request.3

  • 500 Internal Server Error - The server encountered an error and cannot fulfill the request.
  • 501 Not Implemented - The server does not have the functionality to fulfill the request. For example, the server returns this code when it does not recognize the request method.
  • 502 Bad Gateway - The server is acting as a gateway or proxy, or received an invalid response from the upstream server.
  • 503 Service Unavailable - The server is currently unavailable because it is overloaded or down for maintenance. This is usually a temporary state.
  • 504 Gateway Timeout - The server is acting as a gateway or proxy, or did not receive the request from the upstream server in time.
  • 505 HTTP Version Not Supported - The server does not support the HTTP protocol version used in the request.
  • 506 Variant Also Negotiates (RFC 2295)
  • 507 Insufficient Storage (WebDAV; RFC 4918)
  • 508 Loop Detected (WebDAV; RFC 5842)
  • 509 (Bandwidth Limit Exceeded, Apache bw/limited extension)
  • 510 Not Extended (RFC 2774)
  • 511 Network Authentication Required (RFC 6585)
  • 598 (Network read timeout error, Unknown)
  • 599 (Network connect timeout error, Unknown)

Libraries

See also

  • HTTP
  • HTTP Cats - An API that shows HTTP status codes as cats
  • cerrno - The errno.h header of C.
  • X402 - An open protocol for internet-native payments

Favorite site

References


  1. Fielding, Roy T.; Gettys, James; Mogul, Jeffrey C.; Nielsen, Henrik Frystyk; Masinter, Larry; Leach, Paul J.; Berners-Lee, Tim (June 1999). Hypertext Transfer Protocol – HTTP/1.1. IETF. RFC 2616. Retrieved October 24, 2009. ↩

author Zer0 sitemap