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.