Web & Protocol

HTTP Status Codes

A quick reference for web response status codes and what each code means in practice.

Core concept

How to read HTTP status codes

HTTP status codes are standard signals that browsers, API clients, and search engines use to interpret server responses.

1xx responses are informational, 2xx means success, 3xx means redirection, 4xx indicates client-side/request-side issues, and 5xx indicates server-side problems. Reading the first digit narrows the cause and next action quickly.

Operationally similar error pages can mean very different things. 404 means a resource was not found, 410 means it is gone, 429 means requests are rate limited, and 500 means an internal server error occurred.

For SEO, redirects and removal signals matter most. 301/308 indicate long-term moves, 302/307 temporary moves, and 404/410 can affect indexing and recrawl decisions.

Where is it used?

Use it to describe response states consistently in API docs, incident reports, server logs, and crawl diagnostics.

What comes first?

Start with the leading digit, then check the individual code, usage timing, and related codes.

Why does it matter for SEO?

Redirect, removal, access-limit, and server-error signals influence how search engines keep or revisit URLs.

How is the data structured?

Each row combines code, reason phrase, status class, operational meaning, and RFC/IANA reference.

This reference helps operational diagnosis; actual server behavior still depends on application routing and cache layers.

Status codes 64
Classes 5
Key codes 25
Special 21

TABLE

Data preview

64 rows
100 Continue 1xx The request headers were received, and the client may continue sending the request body. RFC 9110
101 Switching Protocols 1xx The server accepted the protocol switch requested by the client. RFC 9110
102 Processing 1xx The request was received and is still being processed, but the final response is not ready yet. RFC 2518
103 Early Hints 1xx The server sends hints such as preload links before the final response so the browser can start preparing resources. RFC 8297
104 Upload Resumption Supported 1xx A temporary registered status code indicating support for upload resumption. IANA temporary registration
200 OK 2xx The request succeeded, and the response body contains the result. RFC 9110
201 Created 2xx The request succeeded and a new resource was created. RFC 9110
202 Accepted 2xx The request was accepted, but processing has not completed yet. RFC 9110
203 Non-Authoritative Information 2xx A proxy or transformation layer modified and forwarded the origin server's 200 response. RFC 9110
204 No Content 2xx The request succeeded, but the response has no body. RFC 9110
205 Reset Content 2xx The request succeeded, and the client may reset the input view. RFC 9110
206 Partial Content 2xx Only part of the resource is returned in response to a Range request. RFC 9110
207 Multi-Status 2xx A WebDAV response carrying statuses for multiple sub-operations in one request. RFC 4918
208 Already Reported 2xx Indicates that a WebDAV binding resource has already been reported and is not repeated. RFC 5842
226 IM Used 2xx The server returned a result after applying an instance manipulation (IM). RFC 3229
300 Multiple Choices 3xx The requested resource has multiple representations or choices. RFC 9110
301 Moved Permanently 3xx The resource has moved permanently to a new URL. RFC 9110
302 Found 3xx The resource is temporarily available at another URL. RFC 9110
303 See Other 3xx The result of the request should be retrieved with GET from another URL. RFC 9110
304 Not Modified 3xx A conditional request found that the resource has not changed, so the cached copy can be used. RFC 9110
305 Use Proxy 3xx A legacy status code instructing the client to use a proxy; it is now deprecated for security reasons. RFC 9110
306 Unused 3xx A status code that was defined in the past but is now reserved and unused. RFC 9110
307 Temporary Redirect 3xx A temporary redirect that must preserve the request method and body. RFC 9110
308 Permanent Redirect 3xx A permanent redirect that must preserve the request method and body. RFC 9110
400 Bad Request 4xx The server cannot process the request because the syntax, parameters, headers, or body are invalid. RFC 9110
401 Unauthorized 4xx Authentication is required or the provided credentials are invalid. RFC 9110
402 Payment Required 4xx Reserved for payment-required scenarios, but its standard meaning is not widely established. RFC 9110
403 Forbidden 4xx The server understood the request but refuses to allow access. RFC 9110
404 Not Found 4xx The requested resource cannot be found, or the server is not revealing whether it exists. RFC 9110
405 Method Not Allowed 4xx The resource exists, but the requested HTTP method is not allowed. RFC 9110
406 Not Acceptable 4xx The server cannot provide a representation matching the client's Accept headers. RFC 9110
407 Proxy Authentication Required 4xx Authentication is required before the client can use the proxy. RFC 9110
408 Request Timeout 4xx The server did not receive the complete client request within the time it was willing to wait. RFC 9110
409 Conflict 4xx The request conflicts with the current state of the resource. RFC 9110
410 Gone 4xx The resource existed in the past but has been permanently removed. RFC 9110
411 Length Required 4xx The server rejects the request because it does not include Content-Length. RFC 9110
412 Precondition Failed 4xx A precondition in a conditional request, such as If-Match, failed. RFC 9110
413 Content Too Large 4xx The request body is larger than the server is willing to accept. RFC 9110
414 URI Too Long 4xx The request URI is longer than the server can process. RFC 9110
415 Unsupported Media Type 4xx The server does not support the media type of the request body. RFC 9110
416 Range Not Satisfiable 4xx The requested Range cannot be served because it does not fit the resource size. RFC 9110
417 Expectation Failed 4xx The server cannot satisfy the expectation given in the Expect header. RFC 9110
418 I'm a teapot 4xx A code originating from an April Fools' RFC, mainly with historical and cultural meaning rather than practical error handling. RFC 2324 / RFC 9110
421 Misdirected Request 4xx The request was sent to a server that cannot produce a response for it. RFC 9110
422 Unprocessable Content 4xx The request syntax is valid, but the content is semantically unprocessable. RFC 9110
423 Locked 4xx The target resource is locked, so the request cannot be processed. RFC 4918
424 Failed Dependency 4xx The current request cannot be performed because a previous dependent operation failed. RFC 4918
425 Too Early 4xx The server refuses to process a request that may be too early and risky to replay. RFC 8470
426 Upgrade Required 4xx The server requires the client to upgrade protocols before it will handle the request. RFC 9110
428 Precondition Required 4xx The server requires a conditional request header. RFC 6585
429 Too Many Requests 4xx The client sent too many requests within a given time period. RFC 6585
431 Request Header Fields Too Large 4xx The overall request headers or a specific header field are too large. RFC 6585
451 Unavailable For Legal Reasons 4xx The resource cannot be provided for legal reasons. RFC 7725
500 Internal Server Error 5xx A general server error indicating that the request could not be handled because of an internal failure. RFC 9110
501 Not Implemented 5xx The server does not support the functionality required to handle the request. RFC 9110
502 Bad Gateway 5xx A gateway or proxy received an invalid response from an upstream server. RFC 9110
503 Service Unavailable 5xx The server is temporarily unable to handle the request. RFC 9110
504 Gateway Timeout 5xx A gateway or proxy did not receive a timely response from an upstream server. RFC 9110
505 HTTP Version Not Supported 5xx The server does not support the HTTP version used in the request. RFC 9110
506 Variant Also Negotiates 5xx A transparent content negotiation configuration error caused an internal negotiation loop. RFC 2295
507 Insufficient Storage 5xx The server cannot allocate the storage needed to complete the request. RFC 4918
508 Loop Detected 5xx The server detected an infinite loop while processing the request. RFC 5842
510 Not Extended 5xx Additional extensions are required for the request to be processed. RFC 2774
511 Network Authentication Required 5xx Authentication is required to gain network access. RFC 6585