HTTP Status Codes Reference

Every HTTP status code explained with ranked common causes, step-by-step troubleshooting commands, and live diagnostic tools. Search or browse all 64 codes below.
5xx — Server Error Responses
The server failed to fulfill a valid request. These indicate problems on the server side — crashes, overload, misconfigurations, or upstream failures. Defined in RFC 9110 §15.6.

Internal Server Error
The server encountered an unexpected condition that prevented it from fulfilling the request.

Not Implemented
The server does not support the functionality required to fulfill the request.

Bad Gateway
The server received an invalid response from the upstream server.

Service Unavailable
The server is temporarily unable to handle the request due to overload or maintenance.

Gateway Timeout
The upstream server did not respond within the gateway's timeout period.

HTTP Version Not Supported
The server does not support the HTTP protocol version used in the request.

Variant Also Negotiates
The server has a circular reference in transparent content negotiation.

Insufficient Storage
The server cannot store the representation needed to complete the request (WebDAV).

Loop Detected
The server detected an infinite loop while processing the request (WebDAV).

Not Extended
The request requires further extensions that the server does not support.

Network Authentication Required
The client must authenticate to gain network access (captive portal).
4xx — Client Error Responses
The request contains an error on the client side — bad syntax, missing authentication, forbidden access, or a resource that does not exist. Defined in RFC 9110 §15.5.

Bad Request
The server cannot process the request due to a client-side error.

Unauthorized
Authentication is required and has not been provided or is invalid.

Payment Required
Payment is required to access this resource (reserved for future use).

Forbidden
The server understood the request but refuses to authorize it.

Not Found
The requested resource could not be found on the server.

Method Not Allowed
The HTTP method used is not supported for this resource.

Not Acceptable
The server cannot produce a response matching the client's Accept headers.

Proxy Authentication Required
The client must first authenticate with the proxy server.

Request Timeout
The server timed out waiting for the client to complete the request.

Conflict
The request conflicts with the current state of the resource.

Gone
The resource has been permanently removed and will not return.

Length Required
The server requires a Content-Length header in the request.

Precondition Failed
A precondition in the request headers evaluated to false.

Content Too Large
The request body exceeds the server's maximum allowed size.

URI Too Long
The request URI exceeds the server's maximum allowed length.

Unsupported Media Type
The server does not support the media type of the request body.

Range Not Satisfiable
The requested byte range is not available for the resource.

Expectation Failed
The server cannot meet the requirements of the Expect header.

I'm a Teapot
A humorous response defined in the Hyper Text Coffee Pot Control Protocol.

Misdirected Request
The request was directed at a server that cannot produce a response.

Unprocessable Content
The request is well-formed but contains semantic errors.

Locked
The resource is locked and cannot be modified (WebDAV).

Failed Dependency
The request failed because it depends on another request that failed (WebDAV).

Too Early
The server refuses to process a request that might be replayed.

Upgrade Required
The server requires the client to upgrade to a different protocol.

Precondition Required
The server requires the request to include conditional headers.

Too Many Requests
The client has sent too many requests and is being rate limited.

Request Header Fields Too Large
The request headers are too large for the server to process.

Unavailable For Legal Reasons
The server is denying access to the resource as a consequence of a legal demand.
3xx — Redirection Responses
The client must take additional action to complete the request, usually following a redirect to a different URL. Important for SEO and URL management. Defined in RFC 9110 §15.4.

Multiple Choices
The request has multiple possible responses and the client should choose one.

Moved Permanently
The resource has been permanently moved to a new URL.

Found
The resource is temporarily located at a different URL.

See Other
The response to the request can be found at a different URI using GET.

Not Modified
The resource has not changed since the last request; use the cached version.

Use Proxy (Deprecated)
The requested resource must be accessed through the specified proxy (deprecated).

Temporary Redirect
The resource is temporarily at a different URL; the request method must not change.

Permanent Redirect
The resource has permanently moved; the request method must not change.
Non-Standard Response Codes
Status codes used by specific web servers that are not part of the HTTP specification. These are commonly seen in Nginx logs and Cloudflare error pages.

No Response
Nginx closed the connection without sending any response (non-standard).

Client Closed Request
The client closed the connection before the server could respond (Nginx).

Web Server Is Down
The origin web server refused or is not responding to Cloudflare's connection (Cloudflare).

Connection Timed Out
Cloudflare could not negotiate a TCP handshake with the origin server (Cloudflare).

A Timeout Occurred
Cloudflare established a TCP connection but the origin server did not respond with an HTTP response in time (Cloudflare).
2xx — Successful Responses
The request was successfully received, understood, and accepted by the server. These codes confirm the operation completed as expected. Defined in RFC 9110 §15.3.

OK
The request succeeded and the server returned the requested resource.

Created
The request succeeded and a new resource was created on the server.

Accepted
The request was accepted for processing but has not been completed yet.

Non-Authoritative Information
The response was modified by a transforming proxy and differs from the origin.

No Content
The request succeeded but the server has no content to return.

Reset Content
The request succeeded and the client should reset the document view.

Partial Content
The server is delivering only part of the resource due to a Range header.
1xx — Informational Responses
Interim responses indicating the server received the request and the client should continue. These are rarely seen in browser traffic but are used in protocol-level communication. Defined in RFC 9110 §15.2.

Continue
The server received the request headers and the client should proceed to send the body.

Switching Protocols
The server is switching to a different protocol as requested by the client.

Processing
The server is processing the request but has not yet completed it (WebDAV).

Early Hints
The server sends preliminary headers to the client before the final response.
The HTTP Request-Response Lifecycle
Every time a browser loads a page, it sends an HTTP request to a server and receives a response. The status code in that response is the first thing the client checks to understand what happened:
The browser resolves the domain name to an IP address using DNS. If this fails, no HTTP request is made at all — you will see a DNS_PROBE_FINISHED_NXDOMAIN error instead of a status code.
The browser opens a TCP connection to the server on port 80 (HTTP) or 443 (HTTPS). Connection refused or timeout errors occur here before any status code is returned.
For HTTPS requests, the browser and server negotiate encryption. SSL/TLS errors occur at this stage, before any HTTP status code is exchanged.
The browser sends the request method (GET, POST, etc.), headers, and body. The server processes the request and determines the appropriate status code.
The server runs application logic, queries databases, checks authentication, and builds a response. Errors during this phase typically result in 4xx or 5xx status codes.
The server sends back a status code, response headers, and body. The status code tells the client whether to display content (2xx), follow a redirect (3xx), or show an error (4xx/5xx).
Status codes only appear at step 6 — if the connection fails before the HTTP layer, you will see browser-level or network errors instead. If you suspect a DNS or connectivity issue before the HTTP layer, use the DNS Inspector to check resolution and the Port Scanner to verify the server is accepting connections.
What Status Code Numbers Mean
HTTP status codes are grouped by their first digit into five classes. Each class tells you the general outcome of the request before you look at the specific code:
1xx — Informational
The server acknowledges the request and tells the client to continue or wait. These are provisional responses used during protocol negotiation and are rarely visible to end users.
2xx — Success
The request was received, understood, and accepted. The most common is 200 OK. Other codes like 201 Created and 204 No Content provide more specific success context for API consumers.
3xx — Redirection
The resource is available at a different location. The client (browser or HTTP client) should follow the redirect. The distinction between codes matters for SEO — 301 transfers link equity, 302 does not.
4xx — Client Error
The request has a problem on the client side. The URL may be wrong (404), authentication may be missing (401), or the request body may be malformed (400). The client needs to fix the request before retrying.
5xx — Server Error
The server failed to process a valid request. This means the problem is on the server side — application crashes (500), upstream failures (502), service overload (503), or timeout (504). These require server-side investigation and cannot be fixed by the client.
When to Investigate vs When to Ignore
Not every non-200 status code is a problem. Some are expected and healthy parts of HTTP communication:
Normal and Expected
- 304 Not Modified — Healthy caching behavior. The browser uses its cached copy instead of downloading again.
- 301/308 Redirects — Normal when migrating URLs, enforcing HTTPS, or adding/removing www. Only investigate redirect chains or loops.
- 204 No Content — Expected for DELETE operations, preflight CORS requests, and tracking pixels.
- 401 on login pages — Expected before the user provides credentials.
Needs Investigation
- Any 5xx error — Always investigate. These indicate server-side failures that affect users. Check port connectivity and server logs.
- Unexpected 404s — Pages that should exist returning 404 indicate broken links, routing issues, or deployment problems.
- 429 rate limits — If your users or API clients are being rate limited, review your request patterns and implement backoff.
- Redirect loops — 301/302 responses that keep redirecting in circles. Check DNS records and server configuration.
Monitor your error rates over time. A sudden spike in 5xx errors or 404s after a deployment is a strong signal that something broke. Occasional 4xx errors from bots and scanners are normal background noise.
References & Specifications
HTTP status codes are defined in official IETF specifications. These are the primary references for standard behavior.
HTTP Semantics
The primary specification defining all standard HTTP status codes, request methods, and header fields.
HTTP Caching
Defines caching behavior including 304 Not Modified responses and cache validation.
HTTP/1.1
Specifies HTTP/1.1 message syntax, connection management, and transfer encoding.
HTCPCP (418 I'm a Teapot)
The Hyper Text Coffee Pot Control Protocol — the origin of the 418 status code.
HTTP Status Codes
Mozilla's developer reference with browser compatibility tables and practical examples.
Troubleshoot HTTP Errors with Free Tools
Diagnose the root cause of HTTP status code issues with these free diagnostic tools.
Redirect Checker
Trace redirect chains and detect loops causing 301/302/307 issues.
HTTP Header Checker
Inspect HTTP response headers, status codes, and server timing.
Security Headers Checker
Audit security headers including CSP, HSTS, and X-Frame-Options.
On-Page SEO Checker
Check on-page SEO factors and meta tags for any URL.
DNS Inspector
Verify domain DNS resolution when pages fail to load.
Related Error Code References
HTTP errors often overlap with SSL/TLS failures, SMTP delivery issues, and CDN-layer problems. These companion references cover error codes from adjacent protocols.
SSL/TLS Error Reference
Diagnose certificate errors, TLS handshake failures, and OpenSSL alerts
SMTP Error Code Reference
Troubleshoot email delivery failures and mail server rejections
Cloudflare Error Reference
Fix Cloudflare 5xx origin errors and 1xxx edge-layer codes
Server Log File Locations
Find log paths on Ubuntu, Debian, RHEL, cPanel, and Plesk