COMPUTER ENGINEER

Jump to examples
Blog
HTTP / HTTPS / TLS6 min study
10/ 70

Status codes · 1xx–5xx

Status code atlas: choosing the right response

Learn the 1xx–5xx families, individual codes and the consequences of API response decisions.

UnderstandStudy an examplePractise

Understand the concept

A status code is a protocol decision, not just a number printed on a page. Browsers, caches, proxies and application clients use it to decide what to do next. The 1xx family is informational; 2xx describes successful handling; 3xx requires further action, including validation; 4xx describes a request-related problem; 5xx describes server-side failure. These families do not automatically assign blame or prescribe retries.

Ask whether the request was understood, whether identity and permissions are acceptable, whether processing finished, and which layer produced the response. Creating a resource can produce 201, accepting queued work 202, and finishing without a response body 204. Hiding every error inside 200 breaks monitoring and client contracts. Keep the real status and any Problem Details status consistent.

Use the atlas below to search individual registered codes. Extension, historical and temporary entries are labelled separately. A code also implies header and body obligations: 401 needs a challenge, 405 identifies allowed methods, and some responses can communicate retry timing. Follow the linked family lessons to practise those decisions.

WHEN TO USE IT

When designing API contracts, frontend error handling and alert rules together.

COMMON PITFALL

Fetch does not reject its promise merely because a response is 4xx or 5xx; inspect response.ok or status.

REFERENCE DESK

Find a status code. Understand its meaning.

Expand a code for its explanation and lesson link. Entries are not all usage recommendations; extensions and historical codes are labelled.

64 / 64 entries

100ContinueProtocol

The request body may be sent; the final response is still pending.

Study the related lesson
101Switching ProtocolsProtocol

An HTTP/1.1 protocol switch was accepted; consider a classic WebSocket upgrade.

Study the related lesson
102ProcessingExtension

A WebDAV-related processing indication, not the final success.

Study the related lesson
103Early HintsProtocol

Resource hints arrive before the final response, without guaranteeing its outcome.

Study the related lesson
104Upload Resumption SupportedTemporary registration

A temporary resumable-upload registration; check its current registry validity.

The entry checked on 2 October 2026 expires on 13 November 2026. Do not treat experimental support or that date as permanent; check the current IANA registry.

Study the related lesson
200OKProtocol

The request was handled successfully; content meaning depends on the method.

Study the related lesson
201CreatedProtocol

A resource was created; Location or the target URI identifies the primary resource.

Study the related lesson
202AcceptedProtocol

Work was accepted but is not complete and may eventually fail.

Study the related lesson
203Non-Authoritative InformationProtocol

An intermediary transformed the representation; this does not simply mean untrustworthy data.

Study the related lesson
204No ContentProtocol

The operation succeeded without content; do not parse a JSON body.

Study the related lesson
205Reset ContentProtocol

The operation succeeded and the initiating document view should reset. No content is sent.

Study the related lesson
206Partial ContentProtocol

One or more byte ranges were returned, with appropriate range metadata.

Study the related lesson
207Multi-StatusExtension

A WebDAV multi-resource result; the body can contain individual statuses.

Study the related lesson
208Already ReportedExtension

Previously reported binding information is not repeated in its WebDAV context.

Study the related lesson
226IM UsedExtension

A specialised response to GET using supported instance manipulation, such as delta encoding.

Study the related lesson
300Multiple ChoicesProtocol

Alternative representations exist and client selection may be needed.

Study the related lesson
301Moved PermanentlyProtocol

A permanent new URI; consider historical POST-to-GET behaviour and caching.

Study the related lesson
302FoundProtocol

A temporary alternative URI; do not assume every client preserves the method.

Study the related lesson
303See OtherProtocol

Retrieve the result from another resource with GET/HEAD, commonly after forms.

Study the related lesson
304Not ModifiedProtocol

Validation of a conditional GET/HEAD; reuse the cached representation without new content.

Study the related lesson
305Use ProxyHistorical / do not use

A deprecated historical proxy redirect; do not use it in a new API design.

Study the related lesson
306UnusedUnused

An unused reserved entry; do not choose it as an application response.

Study the related lesson
307Temporary RedirectProtocol

A temporary redirect preserving method and body.

Study the related lesson
308Permanent RedirectProtocol

A permanent redirect preserving method and body.

Study the related lesson
400Bad RequestProtocol

Malformed syntax or a general invalid request; safely explain what can be corrected.

Study the related lesson
401UnauthorizedProtocol

Usable authentication credentials are required; include a WWW-Authenticate challenge.

Study the related lesson
402Payment RequiredReserved

Reserved for future use; do not present it as a universal payment contract.

Study the related lesson
403ForbiddenProtocol

The server understood but refuses; insufficient permission with valid identity is a common case.

Study the related lesson
404Not FoundProtocol

The resource is unavailable or its existence is not disclosed, including access concealment.

Study the related lesson
405Method Not AllowedProtocol

The resource does not permit this method; communicate allowed methods with Allow.

Study the related lesson
406Not AcceptableProtocol

No acceptable response representation can be supplied; inspect Accept preferences.

Study the related lesson
407Proxy Authentication RequiredProtocol

A forward proxy requires credentials; include Proxy-Authenticate.

Study the related lesson
408Request TimeoutProtocol

The server did not receive the request in time; this is not every client timeout.

Study the related lesson
409ConflictProtocol

The request conflicts with resource state; correction or merging may be needed.

Study the related lesson
410GoneProtocol

The resource’s availability is known to have permanently ended.

Study the related lesson
411Length RequiredProtocol

The request is refused without the required Content-Length information.

Study the related lesson
412Precondition FailedProtocol

A supplied precondition failed; a stale If-Match is a typical example.

Study the related lesson
413Content Too LargeProtocol

Supplied content exceeds a size limit; revise the payload or upload strategy.

Study the related lesson
414URI Too LongProtocol

The URI is too long; redesign oversized query or filter contracts.

Study the related lesson
415Unsupported Media TypeProtocol

The supplied content type or coding is unsupported; this differs from 406.

Study the related lesson
416Range Not SatisfiableProtocol

The requested range cannot be satisfied for the current representation; inspect its length.

Study the related lesson
417Expectation FailedProtocol

The expectation in Expect cannot be met by the server chain.

Study the related lesson
418UnusedUnused

Unused in IANA/RFC 9110; historical teapot humour is not a normal API contract.

Study the related lesson
421Misdirected RequestProtocol

The request reached a server unable to respond for that target.

Study the related lesson
422Unprocessable ContentProtocol

Content is understood but its instructions cannot be processed; use a consistent validation contract.

Study the related lesson
423LockedExtension

A WebDAV resource is locked; this is not a generic account-lockout code.

Study the related lesson
424Failed DependencyExtension

A WebDAV action failed because a dependent action failed.

Study the related lesson
425Too EarlyProtocol

The server is unwilling to process early data with potential replay risk.

Study the related lesson
426Upgrade RequiredProtocol

A protocol upgrade is required; consider the Upgrade information.

Study the related lesson
428Precondition RequiredProtocol

A conditional request is required; this is missing a precondition, not failing one.

Study the related lesson
429Too Many RequestsProtocol

A rate limit was exceeded; consider its scope and any Retry-After information.

Study the related lesson
431Request Header Fields Too LargeProtocol

An individual field or total header set is too large; inspect oversized cookies too.

Study the related lesson
451Unavailable For Legal ReasonsProtocol

Access is restricted for legal reasons, rather than an authentication failure.

Study the related lesson
500Internal Server ErrorProtocol

An unexpected server condition; correlate internal logs without disclosing secrets.

Study the related lesson
501Not ImplementedProtocol

Required functionality is not implemented; this differs from a resource’s 405 method rule.

Study the related lesson
502Bad GatewayProtocol

A gateway received an invalid upstream response; identify the responding hop.

Study the related lesson
503Service UnavailableProtocol

Temporary overload or maintenance may apply; Retry-After does not guarantee safe replay.

Study the related lesson
504Gateway TimeoutProtocol

A gateway did not receive an upstream response in time; side effects may already exist.

Study the related lesson
505HTTP Version Not SupportedProtocol

The required HTTP version is not supported by the server.

Study the related lesson
506Variant Also NegotiatesExtension

A specialised configuration error in transparent content negotiation.

Study the related lesson
507Insufficient StorageExtension

Insufficient storage for the operation in its WebDAV context; an extension code.

Study the related lesson
508Loop DetectedExtension

A loop occurred in a WebDAV operation; not a generic redirect-loop status.

Study the related lesson
510Not ExtendedHistorical / do not use

An obsolete historical extension entry; do not use it for a new API.

Study the related lesson
511Network Authentication RequiredProtocol

Network or captive-portal access requires authentication; not ordinary application login.

Study the related lesson
IANA · current official registry

Framework or vendor codes such as 419 and 520 must not be confused with registered standards. Not every number from 100 to 599 is assigned. This atlas was checked on 2 October 2026.

01 / PRACTICE

One topic. Three levels of depth.

HTTP / illustrative example
HTTP/1.1 201 Created
Location: /orders/42

The order was created; the URI identifies its resource.

This page does not send requests to external servers. Messages are readable HTTP/1.1 illustrations, not HTTP/2 or HTTP/3 wire dumps. example.test is reserved for examples. Run commands and JavaScript only in your own test environment; never publish real tokens or cookies.

02 / YOUR TURN

Try it yourself first.

A report will take 30 seconds and has only been queued. Choose 200, 201 or 202.

Show the solution and explanation
Worked solution
HTTP/1.1 202 Accepted
Location: /jobs/report-42

202 communicates acceptance, not guaranteed completion. Monitor a separate job resource.