HTTP Status Codes
The complete reference of HTTP response status codes: what each code means, when servers send it and how to react — for debugging requests, documenting APIs and reviewing server logs.
Use the jump links to move between response classes, or open the detailed guides for the most common codes.
HTTP response code table
| Code | Name | Meaning |
|---|---|---|
| 1xx Informational | ||
| 100 | Continue | The server received the request headers and the client should send the request body. |
| 101 | Switching Protocols | The server agrees to switch to the protocol requested in the Upgrade header. |
| 102 | Processing | The server accepted the full request but has not completed it yet (WebDAV). |
| 103 | Early Hints | Preliminary headers, mostly Link preload hints, sent before the final response. |
| 2xx Success | ||
| 200 | OK | The request succeeded and the response carries the requested representation. |
| 201 | Created | The request succeeded and a new resource was created, usually named in Location. |
| 202 | Accepted | The request was accepted for asynchronous processing that has not finished. |
| 203 | Non-Authoritative Information | The response was modified by a transforming proxy on the way. |
| 204 | No Content | The request succeeded and there is intentionally no response body. |
| 205 | Reset Content | The request succeeded and the client should reset the document view or form. |
| 206 | Partial Content | The response delivers only the byte range requested with the Range header. |
| 3xx Redirection | ||
| 300 | Multiple Choices | Several representations exist and the client should pick one of them. |
| 301 | Moved Permanently | The resource has a permanent new URL and links should be updated. |
| 302 | Found | The resource temporarily lives at a different URL; keep using the original. |
| 303 | See Other | The result is available at another URL and should be fetched with GET. |
| 304 | Not Modified | The cached copy is still valid, so no body is sent again. |
| 307 | Temporary Redirect | Temporary redirect that must keep the original HTTP method and body. |
| 308 | Permanent Redirect | Permanent redirect that must keep the original HTTP method and body. |
| 4xx Client Errors | ||
| 400 | Bad Request | The server cannot process the request because it is malformed. |
| 401 | Unauthorized | Valid authentication credentials are required and missing or wrong. |
| 402 | Payment Required | Reserved status, used in practice by some APIs for billing limits. |
| 403 | Forbidden | The server understood the request but refuses to authorize it. |
| 404 | Not Found | No resource exists at the requested URL. |
| 405 | Method Not Allowed | The URL exists but does not support this HTTP method. |
| 406 | Not Acceptable | No representation matches the Accept negotiation headers. |
| 407 | Proxy Authentication Required | The client must authenticate with the proxy first. |
| 408 | Request Timeout | The server closed the connection because the request took too long to arrive. |
| 409 | Conflict | The request conflicts with the current state of the resource, e.g. an edit collision. |
| 410 | Gone | The resource was deliberately removed and will not return. |
| 411 | Length Required | The request must include a Content-Length header. |
| 412 | Precondition Failed | A conditional header such as If-Match evaluated to false. |
| 413 | Content Too Large | The request body exceeds the size the server accepts. |
| 414 | URI Too Long | The request URL is longer than the server will parse. |
| 415 | Unsupported Media Type | The request body format is not supported for this resource. |
| 416 | Range Not Satisfiable | The requested byte range lies outside the resource size. |
| 417 | Expectation Failed | The Expect request header could not be fulfilled. |
| 418 | I'm a teapot | An April Fools status from RFC 2324; some APIs use it as an easter egg. |
| 421 | Misdirected Request | The request reached a server that cannot produce a response for this authority. |
| 422 | Unprocessable Content | The request is well-formed but semantically invalid, common in REST validation. |
| 425 | Too Early | The server refuses to process a request that might be replayed (TLS early data). |
| 426 | Upgrade Required | The client must switch to a different protocol as listed in Upgrade. |
| 428 | Precondition Required | The server requires a conditional request to prevent lost updates. |
| 429 | Too Many Requests | The client exceeded a rate limit; Retry-After hints when to try again. |
| 431 | Request Header Fields Too Large | Headers, often cookies, exceed the server's size limits. |
| 451 | Unavailable For Legal Reasons | Access is blocked for legal reasons such as court orders. |
| 5xx Server Errors | ||
| 500 | Internal Server Error | The server hit an unexpected error while handling the request. |
| 501 | Not Implemented | The server does not recognize or support the request method. |
| 502 | Bad Gateway | A gateway or proxy received an invalid response from the upstream server. |
| 503 | Service Unavailable | The server is temporarily unable to serve, due to overload or maintenance. |
| 504 | Gateway Timeout | A gateway or proxy gave up waiting for the upstream server. |
| 505 | HTTP Version Not Supported | The server does not support the HTTP protocol version used. |
| 506 | Variant Also Negotiates | A content negotiation misconfiguration on the server. |
| 507 | Insufficient Storage | The server cannot store what it needs to complete the request (WebDAV). |
| 508 | Loop Detected | The server detected an infinite loop while processing (WebDAV). |
| 510 | Not Extended | The request needs further extensions that were not supplied. |
| 511 | Network Authentication Required | The network (e.g. a captive portal) requires authentication first. |
1xx Informational
Informational responses confirm that the request was received and the client can continue. They are interim: a final status always follows. The one you will actually meet in the wild is 103 Early Hints, which lets servers push preload hints before the full response is ready.
2xx Success
Success responses mean the request was understood and accepted. 200 OK carries the result in the body, 201 Created announces a new resource, and 204 No Content confirms success with deliberately nothing to return.
3xx Redirection
Redirection responses point the client somewhere else. The key distinction is permanence — 301/308 are permanent, 302/307 temporary — and whether the HTTP method must be preserved (307/308) or may change to GET (301/302). 304 Not Modified is the special case that powers browser caching.
4xx Client Errors
Client errors mean the request itself was rejected. The everyday ones: 400 malformed request, 401 authentication required, 403 access refused, 404 nothing at this URL and 429 rate limit exceeded.
5xx Server Errors
Server errors mean the server failed on a request that may have been perfectly valid. 500 is an application crash, 502 and 504 are proxies reporting a broken or silent upstream, and 503 is deliberate, temporary unavailability.
How to read a status code
The first digit is the class: 1xx informational, 2xx success, 3xx redirection, 4xx client error, 5xx server error. A client that meets an unknown code can safely fall back to treating it as the x00 code of its class — that is how new codes stay backward-compatible. When debugging, always look at the response headers next to the code: Location explains redirects, Allow explains 405, Retry-After explains 429 and 503.
Examples
200 OK — page served normally 301 Moved Permanently — URL changed for good, follow Location 304 Not Modified — your cached copy is still valid 404 Not Found — nothing exists at this URL 429 Too Many Requests — rate limit hit, wait Retry-After seconds 503 Service Unavailable — temporary downtime or maintenance
FAQ
What is HTTP 404?
HTTP 404 means the requested resource could not be found at the specified URL. See the detailed 404 guide for causes, fixes and SEO impact.
What is the difference between 301 and 302?
A 301 redirect is permanent — links and search engines should update to the new URL. A 302 signals a temporary move where the original URL stays canonical.
What does 503 mean?
HTTP 503 means the service is temporarily unavailable, usually because of maintenance or overload, and the client should retry after a delay.
What is the difference between 401 and 403?
401 means the server needs valid authentication credentials. 403 means it knows who you are and still refuses access — logging in again will not help.
What is the difference between 502 and 504?
Both come from a proxy talking to an upstream server: 502 means the upstream sent back an invalid response, 504 means it never answered within the timeout.
Which status codes matter most for SEO?
200 marks indexable pages, 301/308 transfer rankings on permanent moves, 404/410 remove dead URLs and 503 protects rankings during downtime when served with Retry-After.