A Complete List of HTTP Status Lines

Screenshot of a 404 error, one of the most commons HTTP statuses

 Hannesfr / Wikimedia Commons / CC BY 3.0

The HTTP status line is the term given to the HTTP status code (the actual code number) when accompanied by the HTTP reason phrase1 (the short description).

We also keep a list of HTTP status code errors (4xx and 5xx) along with some tips on how to fix them.

Note: Though technically incorrect, HTTP status lines are often referred to as simply HTTP status codes.

HTTP Status Code Categories

As you can see below, HTTP status codes are three-digit integers.

The very first digit is used to identify the code within a specific category - one of these five:

  • 1XX: Informational - the request was accepted or the process is continuing.
  • 2XX: Confirms that the action completed successfully or was understood.
  • 3XX: Redirection - something else needs to take place in order to complete the request.
  • 4XX: Client error that indicates that the request can't complete or contains the wrong syntax.
  • 5XX: Server error that indicates that the server failed to complete a request that was supposedly valid.

Applications that understand HTTP status codes don't have to know all of the codes, which means an unknown code also has an unknown HTTP reason phrase, which won't give the user much information. However, these HTTP applications do have to understand the categories or classes as we've described them above.

If the software doesn't know what the specific code means, it can at the very least identify the class.

For example, if a 490 status code is unknown to the application, it can treat it as a 400 because it's in the same category, and can then assume that there's something wrong with the client request.

HTTP Status Lines (HTTP Status Codes + HTTP Reason Phrases)

Status CodeReason Phrase
101Switching Protocols
203Non-Authoritative Information
204No Content
205Reset Content
206Partial Content
300Multiple Choices
301Moved Permanently
303See Other
304Not Modified
305Use Proxy
307Temporary Redirect
308Permanent Redirect
400Bad Request
402Payment Required
404Not Found
405Method Not Allowed
406Not Acceptable
407Proxy Authentication Required
408Request Time-out
411Length Required
412Precondition Failed
413Request Entity Too Large
414Request-URI Too Large
415Unsupported Media Type
416Request Range Not Satisfiable
417Expectation Failed
421Misdirected Request
422Unprocessable Entity
424Failed Dependency
425Unordered Collection
426Upgrade Required
428Precondition Required
429Too Many Requests
431Request Header Fields Too Large
451Unavailable For Legal Reasons
500Internal Server Error
501Not Implemented
502Bad Gateway
503Service Unavailable
504Gateway Time-out
505HTTP Version Not Supported
506Variant Also Negotiates
507Insufficient Storage
508Loop Detected
510Not Extended
511Network Authentication Required

[1] The HTTP reason phrases that accompany HTTP status codes are only recommended. A different reason phrase is allowed per ​RFC 2616 6.1.1. You might see HTTP reason phrases replaced with a more "friendly" description or in a local language.

Unofficial HTTP Status Lines

The HTTP status lines below might be used by some third-party services as error responses, but they are not specified by any RFC.

Status CodeReason Phrase
420Method Failure
420Enhance Your Calm
440Login Timeout
449Retry With
450Blocked by Windows Parental Controls
498Invalid Token
499Token Required
499Request has been forbidden by antivirus
509Bandwidth Limit Exceeded
530Site is frozen

Note: It's important to remember that while HTTP status codes may share the same numbers with errors messages found in other contexts, like with Device Manager error codes, it doesn't mean they're related in any way.