Skip to content
Free · No install required

HTTP Status Codes Reference

Every HTTP status code with a clear explanation. Bookmark this page.

1xx — Informational

CodeNameMeaning
100ContinueThe server received the request headers and the client should send the body.
101Switching ProtocolsThe server is switching protocols at the client’s request (e.g. HTTP → WebSocket).
102ProcessingWebDAV — the server has received the request and is processing it.
103Early HintsUsed to send Link headers before the final response (preload hints).

2xx — Success

CodeNameMeaning
200OKStandard successful response.
201CreatedResource created successfully (typical POST response).
202AcceptedRequest accepted but not yet processed (async).
204No ContentSuccessful but no body to return (typical DELETE response).
206Partial ContentRange request successful (used for resumable downloads).

3xx — Redirection

CodeNameMeaning
301Moved PermanentlyResource has a new permanent URI; clients should update bookmarks.
302FoundTemporary redirect (most legacy redirects use this).
303See OtherAfter POST, redirect to a GET endpoint (PRG pattern).
304Not ModifiedCached version is still fresh; client should use it.
307Temporary RedirectSame as 302 but the request method is preserved.
308Permanent RedirectSame as 301 but the request method is preserved.

4xx — Client errors

CodeNameMeaning
400Bad RequestThe request itself is malformed.
401UnauthorizedAuthentication required (client must log in).
402Payment RequiredReserved for future use; sometimes used by SaaS APIs.
403ForbiddenAuthenticated but not allowed to perform the action.
404Not FoundThe resource doesn’t exist.
405Method Not AllowedThe endpoint exists but doesn’t accept this HTTP method.
406Not AcceptableThe server can’t return the content in any format the client accepts.
408Request TimeoutThe client took too long to send the request.
409ConflictThe request conflicts with the current state (e.g. version mismatch).
410GoneThe resource is permanently gone (stronger than 404).
413Payload Too LargeThe request body is too big.
414URI Too LongThe URL is too long for the server to process.
415Unsupported Media TypeThe content-type is not accepted.
418I’m a TeapotRFC 2324 — joke status code; some APIs use it for “this is the wrong service.”
422Unprocessable EntityRequest is well-formed but semantically invalid (validation errors).
423LockedThe resource is locked (WebDAV).
425Too EarlyThe server is unwilling to risk processing a replayed request.
426Upgrade RequiredThe client must upgrade to a different protocol.
428Precondition RequiredThe server requires the request to be conditional.
429Too Many RequestsRate limit hit.
431Request Header Fields Too LargeHeaders are too big.
451Unavailable For Legal ReasonsCensorship / takedown response.

5xx — Server errors

CodeNameMeaning
500Internal Server ErrorGeneric server failure — check your logs.
501Not ImplementedThe server doesn’t recognize the request method.
502Bad GatewayAn upstream server returned an invalid response.
503Service UnavailableThe server is overloaded or down for maintenance.
504Gateway TimeoutAn upstream server didn’t respond in time.
505HTTP Version Not SupportedThe HTTP version is not supported.
507Insufficient StorageThe server is out of storage.
508Loop DetectedAn infinite loop was detected (WebDAV).
511Network Authentication RequiredCaptive portal — you need to authenticate to the network.

DevZap Premium

Use this directly on any page with DevZap

DevZap brings every tool into your browser as a one-click extension. No tab switching, no copy-pasting URLs. Inspect, generate, and export from any page you visit.

FAQ

Frequently asked questions

Where do these definitions come from?
RFC 9110 (HTTP Semantics, June 2022) is the current authoritative source for status code semantics. Codes registered with IANA are also included.
What's the difference between 401 and 403?
401 Unauthorized means the request lacks valid authentication — the client should re-authenticate. 403 Forbidden means the server understood the request and the client is authenticated, but the action is not permitted.
When should I return 422 vs 400?
Return 400 when the request itself is malformed (bad JSON, wrong content-type). Return 422 when the request is well-formed but semantically invalid (validation errors on individual fields).
Do I need to memorize all of these?
No. Memorize 200, 201, 204, 301, 302, 304, 400, 401, 403, 404, 422, 429, 500, 502, 503. The rest you can look up — that's why pages like this exist.

Ready to make your browser smarter?

Install DevZap free. Upgrade when you're ready.