Skip to content
Everyone-Website
Reference

HTTP Status Codes Explained (Full List)

A clear reference to HTTP status codes — what 200, 301, 404, 500 and the rest actually mean, grouped by class, with plain-English explanations.

Updated 2 June 2026 5 min read

Every time your browser or an app asks a web server for something, the server answers with a three-digit HTTP status code that says how the request went. The first digit tells you the class of the response: 1xx is informational, 2xx means success, 3xx is a redirect, 4xx is a client error (something was wrong with the request), and 5xx is a server error (the request was fine, but the server failed to handle it). The tables below list the codes you’re most likely to meet, with a plain-English explanation of each.

1xx — Informational

These are interim responses. The server has received the request and is telling the client to keep going; a final response will follow.

CodeNameWhat it means
100ContinueThe initial part of the request was received and the client should continue sending the rest of it.
101Switching ProtocolsThe server agrees to switch protocols (for example, upgrading the connection to WebSocket).

2xx — Success

The request was received, understood, and processed successfully.

CodeNameWhat it means
200OKThe standard success response. The request worked and the body contains the result.
201CreatedThe request succeeded and a new resource was created (common after a POST).
202AcceptedThe request was accepted for processing, but the work isn’t finished yet (asynchronous handling).
204No ContentSuccess, but there’s no body to return (often used after a delete or update).
206Partial ContentThe server is delivering only part of the resource, as requested by a Range header (used for resuming downloads and streaming).

3xx — Redirection

The client needs to take an extra step — usually following the request to a different URL — to complete it.

CodeNameWhat it means
301Moved PermanentlyThe resource has a new permanent URL. Browsers and search engines should update their links.
302FoundThe resource is temporarily at a different URL. Keep using the original URL for future requests.
303See OtherLook at another URL with a GET request, typically to show a result page after a form submission.
304Not ModifiedThe cached copy is still current, so the server sends no body and the client reuses what it has.
307Temporary RedirectLike 302, but the request method (e.g. POST) must not change when following the redirect.
308Permanent RedirectLike 301, but the request method must be preserved when following the redirect.

4xx — Client errors

Something was wrong with the request itself, so the server is refusing or unable to fulfil it. Fixing these usually means changing what the client sends.

CodeNameWhat it means
400Bad RequestThe server couldn’t understand the request, often due to malformed syntax or invalid data.
401UnauthorizedAuthentication is required and has either not been provided or has failed. (You’re not signed in.)
403ForbiddenThe server understood the request but refuses to authorize it. (You’re signed in, but not allowed.)
404Not FoundThe requested resource doesn’t exist at that URL — the most familiar error of them all.
405Method Not AllowedThe HTTP method (GET, POST, etc.) isn’t supported for this resource.
408Request TimeoutThe server timed out waiting for the client to finish sending the request.
409ConflictThe request conflicts with the current state of the resource (for example, an edit collision).
410GoneThe resource used to exist but has been permanently removed, with no forwarding address.
418I’m a teapotAn April Fools’ joke code from 1998 that returns when a teapot is asked to brew coffee. Not for real use.
422Unprocessable ContentThe request was well-formed but contained semantic errors, so it couldn’t be processed (common in APIs for validation failures).
429Too Many RequestsThe client has sent too many requests in a given time and is being rate-limited.

5xx — Server errors

The request was valid, but the server failed to fulfil it. These are problems on the server’s side, not the client’s.

CodeNameWhat it means
500Internal Server ErrorA generic, catch-all message: something went wrong on the server and there’s no more specific detail.
501Not ImplementedThe server doesn’t support the functionality needed to fulfil the request.
502Bad GatewayA server acting as a gateway or proxy got an invalid response from an upstream server.
503Service UnavailableThe server is temporarily unable to handle the request, often due to overload or maintenance.
504Gateway TimeoutA gateway or proxy didn’t get a timely response from the upstream server it needed.

Quick tips

A few pairs of codes are easy to mix up. Here’s how to tell them apart:

  • 301 vs 302: Use 301 when a page has moved for good — it tells browsers and search engines to update their links and pass on ranking. Use 302 for a temporary move where you want everyone to keep using the original URL.
  • 401 vs 403: 401 means “I don’t know who you are” — you need to authenticate (log in). 403 means “I know who you are, but you still can’t have this” — you’re authenticated but lack permission.
  • 502 vs 503: 502 Bad Gateway points to a broken or unexpected response coming from an upstream server behind a proxy. 503 Service Unavailable means the server is up but deliberately not serving right now (overloaded or under maintenance) and is usually a temporary condition.