Home / Tools / HTTP status codes

HTTP Status Codes List: Meaning and What to Check for Each Code

Look up any HTTP status code, such as 404, 301, 429 or 502, with a plain explanation and what to check when you see it.

Search the table by number or word to see what an HTTP status code means and what to check. It covers the standard codes plus the common nginx and Cloudflare ones that you meet when running a site.

1xx: Information

CodeNameWhat it meansWhat to check
100ContinueThe server got the start of the request and the client may send the rest.Normal. It is sent when a client asks first with an Expect: 100-continue header.
101Switching ProtocolsThe server agrees to change protocol, usually from HTTP to WebSocket.Normal for WebSockets. If it never appears, check the Upgrade and Connection headers on your proxy.
102ProcessingThe server has the request and is still working on it (WebDAV).Rare. Wait for the final answer.
103Early HintsThe server sends link headers early so the browser can start loading files.Normal. It comes before the final response.

2xx: Success

CodeNameWhat it meansWhat to check
200OKThe request worked and the answer is in the body.Nothing to fix.
201CreatedThe request worked and a new item now exists.Normal after a POST that creates something. The Location header often points to it.
202AcceptedThe server took the request and will process it later.Normal for background jobs. Check the job status separately.
203Non-Authoritative InformationThe answer is OK but was changed by a proxy on the way.Rare. Only matters if you rely on exact headers.
204No ContentThe request worked and there is nothing to send back.Normal for DELETE and some PUT requests. Do not try to read a body.
205Reset ContentThe request worked and the client should clear its form or view.Rare.
206Partial ContentThe server sends only the part of the file that was asked for.Normal for video, audio and resumed downloads (Range requests).
207Multi-StatusSeveral results in one answer (WebDAV).Read each result inside the body.
208Already ReportedItems were already listed earlier in this answer (WebDAV).Rare.
226IM UsedThe answer is the result of one or more changes applied to the current item.Rare.

3xx: Redirection

CodeNameWhat it meansWhat to check
300Multiple ChoicesThere is more than one possible answer for this address.Rare. Pick one of the links offered.
301Moved PermanentlyThe page has a new address for good.Update your links to the new address. Search engines move to it. Redirect loops often come from conflicting 301 rules.
302FoundThe page is at another address for now.Normal for temporary redirects such as login. Use 301 or 308 when the move is permanent.
303See OtherFetch the result from another address with GET.Normal after a form POST so that a reload does not send it again.
304Not ModifiedYour cached copy is still current, so nothing is sent.Normal and good: it saves bandwidth. Check ETag and Last-Modified headers if caching misbehaves.
305Use ProxyThe page must be fetched through a proxy.Deprecated. Browsers ignore it.
307Temporary RedirectRepeat the same request at another address for now, with the same method.Like 302, but a POST stays a POST.
308Permanent RedirectRepeat the same request at another address for good, with the same method.Like 301, but a POST stays a POST.

4xx: Client errors

CodeNameWhat it meansWhat to check
400Bad RequestThe server could not understand the request.Check the address, the JSON body, the headers and the cookie size. Very large cookies cause 400 as well.
401UnauthorizedYou must sign in (or your login was not accepted).Send valid credentials, for example an Authorization header. Check the token has not expired.
402Payment RequiredReserved for payment systems.Only used by some APIs, to say a payment or plan limit is needed.
403ForbiddenThe server understood you but will not let you in.Check permissions, file ownership, IP allow lists and API scopes. On a web server also check the index file and folder permissions.
404Not FoundThere is nothing at this address.Check the spelling of the address, and that the file or route exists. Fix broken links and add a redirect if the page moved.
405Method Not AllowedThe address exists but does not accept this method (such as POST).Use the method the route allows. Check the Allow header in the answer and your server or router config.
406Not AcceptableThe server cannot make an answer in the format your Accept header asks for.Change or remove the Accept header.
407Proxy Authentication RequiredYou must sign in to the proxy first.Give the proxy a user name and password.
408Request TimeoutThe server gave up waiting for the request to arrive.Check the network. Retry. Slow uploads may need a longer server timeout.
409ConflictThe request clashes with the current state, such as a duplicate or an edit clash.Fetch the latest version of the item and try again, or use a different unique value.
410GoneThe page was removed on purpose and will not come back.Remove links to it. Search engines drop 410 pages faster than 404.
411Length RequiredThe request needs a Content-Length header.Add the header or send the body in a way the client library sizes for you.
412Precondition FailedA condition in the request headers (such as If-Match) was not true.Re-fetch the item to get a fresh ETag.
413Content Too LargeThe request body is bigger than the server allows.Send less data, or raise the limit: nginx client_max_body_size, PHP upload_max_filesize and post_max_size.
414URI Too LongThe address is longer than the server accepts.Send the data in a POST body instead of the query string.
415Unsupported Media TypeThe server does not accept the format of the body.Set the right Content-Type header, such as application/json.
416Range Not SatisfiableThe requested part of the file is outside its size.Check the Range header and the file size.
417Expectation FailedThe server cannot meet the Expect header.Remove the Expect header, for example with curl -H "Expect:".
418I'm a teapotA joke code from 1998 (RFC 2324). Some servers use it to refuse bots.Nothing to fix. It is a deliberate answer.
421Misdirected RequestThe request went to a server that cannot answer for that host name.Check the host name and TLS certificate setup on the server.
422Unprocessable ContentThe format is right but the values are not acceptable.Read the error list in the body. Common in APIs for failed validation.
423LockedThe item is locked (WebDAV).Unlock it, or wait for the lock to end.
424Failed DependencyThe request failed because an earlier request it depended on failed (WebDAV).Fix the first error.
425Too EarlyThe server will not process a request that could be replayed.Retry once the connection is fully set up.
426Upgrade RequiredThe client must switch to a newer protocol.Use the protocol named in the Upgrade header, often TLS or HTTP/2.
428Precondition RequiredThe server wants a condition header such as If-Match.Add the header to avoid overwriting someone else's change.
429Too Many RequestsYou sent too many requests in a short time.Slow down. Wait for the time in the Retry-After header. Add caching or back-off in your code.
431Request Header Fields Too LargeThe headers, often cookies, are too big.Clear cookies for the site, or raise the header size limits on the server.
451Unavailable For Legal ReasonsThe content is blocked for legal reasons.Nothing to fix on your side. The page is withheld by law or order.

5xx: Server errors

CodeNameWhat it meansWhat to check
500Internal Server ErrorSomething went wrong on the server and it has no more detail for you.Read the server error log. Look for a crash, a bad config line (such as in .htaccess), or a failed database call.
501Not ImplementedThe server does not support the method or feature requested.Use a method the server supports, or update the server.
502Bad GatewayA server acting as a proxy got a bad answer from the server behind it.Check the app behind nginx or your load balancer is running and the port or socket is right. Read the proxy error log.
503Service UnavailableThe server cannot handle the request right now, often due to overload or maintenance.Wait and retry. Check server load and that the app is running. A Retry-After header may tell you when.
504Gateway TimeoutThe proxy waited too long for the server behind it.Find out why the app is slow, or raise the proxy timeout (proxy_read_timeout in nginx).
505HTTP Version Not SupportedThe server does not support the HTTP version used.Use a version the server supports, such as HTTP/1.1.
506Variant Also NegotiatesA server configuration error in content negotiation.Fix the server setup.
507Insufficient StorageThe server has no space to store the result (WebDAV).Free disk space on the server.
508Loop DetectedThe server found an endless loop (WebDAV).Fix the circular link or binding.
510Not ExtendedThe server needs more extensions in the request.Rare.
511Network Authentication RequiredYou must sign in to the network first, such as at a hotel Wi-Fi page.Open a web page in your browser and complete the login.

Not standard: nginx and Cloudflare codes

CodeNameWhat it meansWhat to check
499Client Closed RequestNginx only: the visitor closed the connection before the server answered.Usually harmless. If it is frequent, the app is too slow, so look at timeouts.
520Web Server Returned an Unknown ErrorCloudflare only: the server behind it sent an answer Cloudflare could not understand.Check your server logs and look for crashes or oversized headers.
521Web Server Is DownCloudflare only: your server refused the connection.Start the web server and let Cloudflare IP addresses through your firewall.
522Connection Timed OutCloudflare only: your server did not answer in time.Check the server is reachable and not overloaded. Check firewall rules.
523Origin Is UnreachableCloudflare only: Cloudflare cannot reach your server.Check the DNS record points to the right IP address and the server is online.
524A Timeout OccurredCloudflare only: your server accepted the connection but took too long to answer.Speed up the slow request or move it to a background job.
525SSL Handshake FailedCloudflare only: the secure connection to your server failed.Check the certificate and the TLS versions on your server.
526Invalid SSL CertificateCloudflare only: your server certificate is not valid.Install a valid certificate, or change the SSL mode.

What it does

Frequently asked questions

What is the difference between 301 and 302?
301 means the page moved for good, so search engines switch to the new address. 302 means it is elsewhere for now, so they keep the old one.
What is the difference between 401 and 403?
401 means you have not proven who you are, or your login was rejected. 403 means the server knows who you are but will not let you in.
What is the difference between 502, 503 and 504?
502 means a bad answer from the server behind a proxy. 503 means the service is overloaded or down for now. 504 means the proxy waited too long for the server behind it.
Where do status codes come from?
The standard ones are defined in RFC 9110 and registered by IANA. A few, such as 499 and 520 to 526, are used by specific products and are not part of the standard.

Runs in your browser. Nothing you type is sent to this site. Updated 2026-10-11.

More tools

Code formatters

CSS beautifier CSS minifier HTML beautifier HTML minifier JavaScript beautifier JavaScript minifier JSON formatter YAML formatter XML formatter SQL formatter Markdown preview

Converters

Base64 encoder and decoder URL encoder and decoder Unix timestamp converter CSV to JSON JSON to CSV HTML entity encoder and decoder Number base converter Time zone converter JSON to TypeScript XML to JSON HTML to Markdown Date difference calculator

Text tools

Regex tester Remove duplicate lines Lorem ipsum generator Word counter Case converter Text diff checker

Color and images

Color converter Contrast checker Image to Base64 Image resizer

Network

Subnet calculator Download time calculator Common ports list CIDR to IP range IPv6 address expander and compressor MAC address formatter curl command builder

Server and files

Cron expression explainer chmod calculator

Encoding and security

Password generator UUID generator Hash generator JWT decoder QR code generator Password strength checker Wi-Fi QR code generator