Topics Glossary About Privacy Terms Free IP Tools →

HTTP Status Codes: Every Code Explained

http status codes web networking reference

HTTP status codes are three-digit numbers that a web server sends back in response to a client’s request. They tell the browser (or API client) whether the request succeeded, failed, or requires further action. Every web developer, sysadmin, and SEO professional encounters these codes regularly. Understanding them is essential for debugging, monitoring, and building reliable web applications.

1xx Informational

These interim responses indicate the request was received and processing is continuing.

CodeNameMeaning
100ContinueServer received the request headers, client should proceed with the body
101Switching ProtocolsServer is switching to the protocol requested (e.g., WebSocket upgrade)
103Early HintsServer sends preliminary headers (preload resources before final response)

2xx Success

The request was successfully received, understood, and accepted.

CodeNameMeaning
200OKStandard success. The most common response code.
201CreatedResource was successfully created (POST requests)
204No ContentSuccess but no content to return (common for DELETE requests)
206Partial ContentOnly part of the resource is returned (used by range requests for resumable downloads)

3xx Redirection

The client must take additional action to complete the request.

CodeNameMeaning
301Moved PermanentlyResource permanently moved to a new URL. Browsers cache this. Search engines transfer link equity.
302FoundTemporary redirect. Original URL is still valid.
303See OtherRedirect after POST (use GET for the new URL)
304Not ModifiedCached version is still valid. Server doesn’t send the body (saves bandwidth)
307Temporary RedirectLike 302 but preserves the HTTP method (POST stays POST)
308Permanent RedirectLike 301 but preserves the HTTP method

4xx Client Error

The request contains bad syntax or cannot be fulfilled.

CodeNameMeaning
400Bad RequestServer can’t understand the request (malformed syntax, invalid parameters)
401UnauthorizedAuthentication required (you need to log in)
403ForbiddenAuthenticated but not authorized (you’re logged in but don’t have permission)
404Not FoundThe most famous error code. Resource doesn’t exist at this URL
405Method Not AllowedHTTP method not supported (e.g., POST to a read-only endpoint)
408Request TimeoutClient took too long to send the complete request
409ConflictRequest conflicts with current state (e.g., duplicate resource)
410GoneLike 404 but permanent. The resource existed but was intentionally removed
413Payload Too LargeRequest body exceeds the server’s size limit
418I’m a TeapotAn April Fools joke from RFC 2324 (HTCPCP). Some servers implement it. Not actually useful.
429Too Many RequestsRate limited. You’re sending too many requests too quickly
451Unavailable For Legal ReasonsContent blocked due to legal demands (named after Fahrenheit 451)

5xx Server Error

The server failed to fulfill a valid request.

CodeNameMeaning
500Internal Server ErrorGeneric “something broke on the server.” Check server logs
502Bad GatewayUpstream server (behind a reverse proxy or load balancer) sent an invalid response
503Service UnavailableServer is temporarily overloaded or under maintenance
504Gateway TimeoutUpstream server didn’t respond within the timeout period
507Insufficient StorageServer is out of storage to complete the request
508Loop DetectedServer detected an infinite redirect loop
521Web Server Is DownCloudflare-specific: origin server refused the connection
522Connection Timed OutCloudflare-specific: origin server didn’t respond in time
523Origin Is UnreachableCloudflare-specific: can’t reach origin server
524A Timeout OccurredCloudflare-specific: TCP connection established but HTTP response took too long

Quick Troubleshooting

Getting 4xx errors? The problem is on your side. Check the URL, your authentication, your request format, or your permissions.

Getting 5xx errors? The problem is on the server side. If it’s not your server, try again later. If it is your server, check your application logs, server resources, and upstream service health.

Getting 3xx loops? You have a redirect misconfiguration. Two URLs are redirecting to each other. Common with HTTP/HTTPS redirects or www/non-www canonicalization.

Test It Yourself

HTTP Headers Checker

Enter any URL and see the status code, response headers, and security configuration.

Open Tool →

Frequently Asked Questions

301 is a permanent redirect (search engines transfer the old URL's SEO value to the new one). 302 is a temporary redirect (search engines keep indexing the old URL). Use 301 when the move is permanent, 302 when it's temporary.
401 Unauthorized means you haven't authenticated (the server doesn't know who you are). 403 Forbidden means you've authenticated but don't have permission (the server knows who you are and says no).