iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
HTTP return codes—officially called HTTP status codes—are three-digit numbers in a server’s response that describe the result of a request. The first digit identifies one of five broad classes: informational, successful, redirection, client error, or server error. The specific code, response content, and headers together tell you what happened and what may need to happen next.
What do HTTP return codes mean?
RFC 9110 defines a status code as “a three-digit integer code that describes the result of the request and the semantics of the response, including whether the request was successful and what content is enclosed (if any).” The standard uses the term status code; “return code” is a common informal name.
A status code is part of an HTTP response, not a complete explanation by itself. The response may also include content describing an error or result, along with metadata and headers that affect how a client should respond. RFC 9110, the IETF’s June 2022 HTTP Semantics standard, defines the status-code meanings shared by HTTP versions. Read RFC 9110.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
What do the five HTTP status-code classes mean?
Valid HTTP status codes range from 100 to 599. Their first digit identifies the class; the last two digits do not create additional classes.
#1 Best Overall
| Range | Class | Practical meaning |
|---|---|---|
| 1xx | Informational | An interim response: the request is still being processed. |
| 2xx | Successful | The request was received, understood, and accepted. |
| 3xx | Redirection | Further action is needed to complete the request. |
| 4xx | Client Error | The server perceives a problem with the request or a reason it cannot fulfill it. |
| 5xx | Server Error | The server failed to fulfill an apparently valid request. |
What is the difference between 4xx and 5xx?
A 4xx response indicates that the server considers the request to have a client-side problem, such as invalid syntax, missing authentication, or a refusal to provide the requested resource. A 5xx response means the server could not fulfill a request that it considers apparently valid. This distinction is useful, but it does not prove who ultimately caused a failure: application context and intermediaries can matter, and not every 4xx response means a person made a mistake.
The exact code matters more than the class shorthand. For example, 401 calls for an authentication challenge, while 403 indicates refusal that authentication may not resolve. A 503 may indicate temporary unavailability; a 500 indicates an unexpected server condition.
Rank #2
How do interim and final responses work?
A request can receive zero or more interim 1xx responses, followed by exactly one final response from another class. An interim response communicates connection status or progress; it does not mean the requested action is complete. For example, 100 Continue means the initial part of the request arrived without being rejected and the server intends to send a final response after receiving and acting on the complete request.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Common HTTP status codes and what to do
Success: 200, 201, 202, and 204
- 200 OK: The request succeeded. What the response contains depends on the request method.
- 201 Created: The request succeeded and resulted in one or more new resources.
- 202 Accepted: The request was accepted for processing, but processing is not complete. The request may or may not ultimately be acted upon; acceptance is not a guarantee of completion.
- 204 No Content: The request succeeded, and there is no additional response content to send.
Redirection and caching: 301, 302, and 304
- 301 Moved Permanently and 302 Found both communicate redirection, but differ in permanence and method-handling semantics. Their names alone are not enough to determine every client’s next step; consult the code-specific rules in RFC 9110 Section 15.4.
- 304 Not Modified: For a conditional request, this indicates that a stored representation remains usable. It is a cache-validation result, not a generic failure, and it carries no response content.
Client-side conditions: 400, 401, 403, 404, and 429
- 400 Bad Request: The server cannot or will not process the request because it perceives a client error, such as malformed syntax or invalid message framing.
- 401 Unauthorized: The request was not applied because valid authentication credentials for the target resource are missing. Despite its name, this is an authentication-related response, and the server must send a
WWW-Authenticatechallenge. - 403 Forbidden: The server understood the request but refuses to fulfill it. Signing in does not necessarily resolve the refusal.
- 404 Not Found: The origin server did not find a current representation for the target resource, or is unwilling to disclose that one exists.
- 429 Too Many Requests: The client sent too many requests in a given amount of time. The response may include a
Retry-Afterheader.
Server-side conditions: 500 and 503
- 500 Internal Server Error: The server encountered an unexpected condition that prevented it from fulfilling the request.
- 503 Service Unavailable: The server is currently unable to handle the request, commonly because of temporary overload or maintenance. The response may include a
Retry-Afterheader.
What if an HTTP status code is unfamiliar?
A code can be valid even if a client does not recognize its specific meaning. The client must understand the first digit and handle an unknown code as the corresponding x00 class code. RFC 9110 gives 471 as an example: an unrecognized 471 is handled like 400, within the client-error class. A value below 100 or above 599 is not a valid HTTP status code.
Do the words after a status code matter?
The descriptive text often shown beside a code is called a reason phrase. It is recommended text, not the source of the protocol’s meaning: a server may replace it with a local phrase or omit it. Interpret the numeric code and relevant response headers and content rather than relying on the wording alone. Error responses commonly include content explaining the condition and a possible resolution, but the code by itself does not guarantee that explanation.
Quick Recap
Best Value
- Used Book in Good Condition
Rank #4
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

