ToolNimba

๐Ÿšฆ HTTP Status Codes: Full List and What Each One Means

Shihab Mia By Shihab Mia ยท Updated 2026-07-29

Showing all status codes.

Every time a browser or app talks to a web server, the server answers with a three-digit HTTP status code that says how the request went. This reference lists the codes you will actually meet, from 1xx through 5xx, with a plain-English name and meaning for each. Type a number like 404, a word like timeout, or a class like 5xx into the search box, and the list filters instantly. Use the class buttons to jump straight to client errors or server errors.

What is the HTTP Status Codes?

An HTTP status code is a short numeric reply that a server sends with every response, in the status line right before the response headers and body. The first digit puts the code into one of five classes, so you can tell at a glance what kind of answer you are getting. 1xx codes are informational, 2xx mean success, 3xx mean a redirect is needed, 4xx mean the client (the request) got something wrong, and 5xx mean the server itself failed. Knowing just the first digit is often enough to point you in the right direction, even before you look up the exact code.

The codes are defined by the Internet standards bodies, most recently in RFC 9110 (which replaced the older RFC 7231 and RFC 2616), and are reused across the whole web. That is why a 404 means the same thing whether it comes from a tiny blog, a bank, or a global API. This shared vocabulary is what lets browsers, caches, search-engine crawlers, and monitoring tools all react sensibly without custom rules for every site. A correct status code is not just cosmetic either: search engines treat a 200, a 301, and a 404 very differently, and a page that returns the wrong code can be indexed, dropped, or ranked incorrectly.

Not every registered code shows up every day. Some, like 100 Continue or 103 Early Hints, are informational and mostly invisible because browsers handle them automatically before the real response arrives. Others are rare but important once you know them, such as 429 Too Many Requests from an API rate limiter, 451 Unavailable For Legal Reasons for content blocked by law, or the joke code 418 I am a teapot, which started as an April Fools RFC and is still formally registered today. The IANA HTTP Status Code Registry is the official source of truth for every code and its assigned name.

The most useful day-to-day skill is matching a symptom to a class before you even open the network tab. A broken link is almost always a 404. A login wall is a 401 or 403. A site that loads but whose API calls fail often shows a 502 or 503, because a gateway or reverse proxy could not reach the real server behind it. Once you know the class, the exact code (and the meaning shown here) tells you whether the fix belongs on your side, such as fixing a URL or refreshing a login token, or on the server side, such as waiting out a maintenance window or fixing a backend crash.

You can see the status code for any page yourself. In a browser, open developer tools, go to the Network tab, reload the page, and click the top request to see its status. From a terminal, run curl -I https://example.com to fetch just the headers, and the first line shows the code. Many codes also come with extra headers that matter as much as the number itself: a 429 or 503 often includes a Retry-After header telling you how long to wait, a 301 or 302 includes a Location header with the new URL, and a 304 Not Modified relies on caching headers like ETag and Last-Modified to tell the browser its cached copy is still good.

When to use it

  • Looking up what a code like 404, 403, or 502 means while debugging a failing request.
  • Choosing the correct status code to return from your own API or web server (for example 201 after creating a record, or 422 for a validation error).
  • Explaining to a teammate or client why a page returns the code it does, and whose side the fix is on.
  • Checking redirect behaviour, such as the difference between a permanent 301 and a temporary 302 or 307.
  • Working out why an integration suddenly broke, such as a 401 after a token expired or a 429 after hitting a rate limit.
  • Teaching or revising the HTTP status code families for an interview, certification, or onboarding a new developer.

How to use the HTTP Status Codes

  1. Type a code number, a name, or a keyword into the search box (for example 404, not found, or redirect).
  2. Or click a class button (1xx through 5xx) to show only codes in that family.
  3. Read the matching codes, grouped by class, each with its official name and a short meaning.
  4. Combine search and a class filter to narrow a large family quickly, then clear the box to see everything again.
  5. Cross-check the code you found against the reference tables below for the exact fix and whether it is a client-side or server-side issue.

Formula & method

The first digit sets the class: 1xx = informational, 2xx = success, 3xx = redirection, 4xx = client error, 5xx = server error. The full three digits identify the specific code within that class.
HTTP status code classes at a glance1xxInformationalrequest received100 Continue2xxSuccessrequest worked200 OK3xxRedirectiongo elsewhere301 Moved4xxClient errorrequest was wrong404 Not Found5xxServer errorserver failed500 InternalThe first digit alone tells you which side of the request the problem is on1xx and 2xx: nothing to fix. 3xx: follow the new URL. 4xx: fix the request. 5xx: wait on the server.

Worked examples

A visitor clicks a link on your site and sees an error page saying the page does not exist.

  1. The server could not find the requested URL, so it returns a code in the 4xx (client error) class.
  2. The specific code is 404 Not Found, meaning the resource is missing or the URL is mistyped.
  3. Because it is a 4xx, the problem is with the request (a wrong or dead link), not the server itself.

Result: The link points to a missing page and should be fixed or redirected with a 301.

Your app loads but its API calls all fail, and the network tab shows code 503.

  1. 503 starts with 5, so it is a server-error class code, not a problem with your request.
  2. 503 Service Unavailable means the server is overloaded or down for maintenance.
  3. The fix is on the server side, retry later or check the backend, rather than changing the request.

Result: The backend is temporarily unavailable, so wait and retry instead of editing the client.

A third-party API that worked yesterday now returns 401 on every call your app makes.

  1. 401 is a 4xx code, so the request itself, not the server, is the source of the problem.
  2. 401 Unauthorized specifically means the credentials sent were missing, wrong, or expired.
  3. Check whether an access token expired or a key was rotated, then re-authenticate and retry.

Result: An expired token was the cause, so refreshing it and resending the request fixes the 401.

The five HTTP status code classes at a glance

ClassRangeMeaningTypical example
1xx100 to 199Informational, request received and continuing100 Continue
2xx200 to 299Success, the request was completed200 OK
3xx300 to 399Redirection, more action is needed301 Moved Permanently
4xx400 to 499Client error, the request was faulty404 Not Found
5xx500 to 599Server error, the server failed500 Internal Server Error

Full list of the HTTP status codes you will meet most often

CodeNameClassWhen you will see it
100Continue1xxClient should carry on sending the rest of a large request
101Switching Protocols1xxServer agrees to switch protocols, used for WebSockets
200OK2xxThe request succeeded and the response body has the result
201Created2xxA new resource was created, typical after a successful POST
204No Content2xxRequest succeeded but there is nothing to send back
301Moved Permanently3xxThe page has a new permanent URL, update your links
302Found3xxA temporary redirect, keep using the original URL
304Not Modified3xxYour cached copy is still valid, no need to redownload
400Bad Request4xxThe request was malformed or had invalid data
401Unauthorized4xxYou are not authenticated, log in or send valid credentials
403Forbidden4xxYou are authenticated but not allowed to access this resource
404Not Found4xxThe requested page or resource does not exist at this URL
405Method Not Allowed4xxThe HTTP method used is not supported for this URL
409Conflict4xxThe request conflicts with the current state of the resource
410Gone4xxThe resource existed before but has been permanently removed
422Unprocessable Entity4xxThe request was well-formed but failed validation
429Too Many Requests4xxYou hit a rate limit, slow down and retry after a delay
500Internal Server Error5xxA generic, unexpected failure inside the server
502Bad Gateway5xxAn upstream server gave a gateway an invalid response
503Service Unavailable5xxThe server is overloaded or down for maintenance
504Gateway Timeout5xxAn upstream server did not respond to a gateway in time

Commonly confused codes and how they differ

CodeNameKey point
301Moved PermanentlyPermanent redirect, search engines transfer ranking to the new URL
302FoundTemporary redirect, keep using the original URL in future
401UnauthorizedYou are not authenticated, log in first
403ForbiddenYou are authenticated but not allowed access
404Not FoundThe resource may come back, or the URL may be wrong
410GoneThe resource is deliberately and permanently removed
400Bad RequestThe request itself is malformed, fix the syntax or data sent
422Unprocessable EntityThe request is well-formed but the data fails validation rules
502Bad GatewayA gateway got a broken response from the upstream server
503Service UnavailableThe server is temporarily overloaded or in maintenance mode

Common mistakes to avoid

  • Returning 200 for an error page. A friendly error page that still sends a 200 OK code tells crawlers and tools the page worked. Missing pages should return 404 (or 410 if gone for good) so they are handled correctly.
  • Confusing 401 and 403. A 401 means you have not proven who you are, so logging in may help. A 403 means the server knows who you are and still refuses, so more credentials will not change anything.
  • Using 302 when you mean 301. A 302 is a temporary redirect, so search engines keep indexing the old URL. For a permanent move use 301 (or 308) so ranking and links transfer to the new address.
  • Blaming the client for a 5xx. Any code starting with 5 is a server-side failure. Re-sending the same request rarely helps until the server or its upstream gateway is fixed.
  • Ignoring the Retry-After header on 429 and 503. Both codes often include a Retry-After header telling you exactly how long to wait. Retrying immediately in a loop just triggers the rate limiter or maintenance page again.
  • Treating every 4xx as "my fault". Most 4xx codes do mean the request needs fixing, but a 404 can also mean the server side deleted or moved a page without a redirect. Check both ends before assuming.

Glossary

Status code
The three-digit number a server returns with every HTTP response to describe the outcome of the request.
Class
The family a code belongs to, set by its first digit: 1, 2, 3, 4, or 5.
Client error
A 4xx code, meaning the request itself was wrong, such as a missing page or bad input.
Server error
A 5xx code, meaning the server failed to handle an otherwise valid request.
Redirect
A 3xx code that tells the client to fetch the resource from a different URL.
Gateway
A server such as a proxy or load balancer that forwards a request to another (upstream) server and relays its response.
Retry-After
A response header, often sent with 429 or 503, that tells the client how many seconds (or a date) to wait before trying again.
Idempotent
A request that produces the same result no matter how many times it is repeated, which matters for deciding when it is safe to retry after an error.

Frequently asked questions

What is a 404 error?

404 Not Found is a client-error code that means the server could not find the requested resource. It usually points to a broken or mistyped link, a deleted page, or a wrong URL. The fix is to correct the link or set up a redirect to a working page.

What do the five status code classes mean?

The first digit sets the class. 1xx is informational, 2xx is success, 3xx means a redirect is needed, 4xx is a client error (the request was wrong), and 5xx is a server error (the server failed). Knowing the class alone often tells you whose side the problem is on.

What is the difference between 301 and 302?

A 301 Moved Permanently says the resource has a new permanent URL, and search engines transfer ranking to it. A 302 Found (and 307) is a temporary redirect, so the original URL should still be used in future and ranking stays with it.

What is the difference between 401 and 403?

A 401 Unauthorized means you have not authenticated, so providing valid credentials may grant access. A 403 Forbidden means the server understood who you are and still refuses, so logging in again will not help.

What does a 500 error mean?

500 Internal Server Error is a generic server-side failure: the server hit an unexpected condition and could not complete the request. Because it is a 5xx code, the fix belongs on the server, not in the request you sent.

What does 429 Too Many Requests mean?

429 means you have sent more requests than the server allows in a given time window, usually because of an API rate limit. Check for a Retry-After header, slow down your request rate, and try again after the wait period.

What is the difference between 502 and 503?

502 Bad Gateway means a proxy or load balancer received an invalid response from the server behind it. 503 Service Unavailable means the server itself is temporarily overloaded or in maintenance mode. Both are 5xx and both mean the fix is on the server side.

Is 304 Not Modified an error?

No. 304 is a 3xx success-adjacent code that tells the browser its cached copy of the page is still valid, so the server does not resend the full content. It speeds up loading and saves bandwidth, and no fix is needed.

How many HTTP status codes are there?

The IANA HTTP Status Code Registry lists around 60 officially registered codes across the five classes, though only a few dozen show up in everyday use. Some, like 418 I am a teapot, are registered but rarely used in production.

Is my data sent anywhere when I use this reference?

No. This tool is a static list of HTTP status codes that runs entirely in your browser. Searching and filtering happen locally with no network calls, so nothing you type is sent to any server.