Home » Tech Tips » Internet » HTTP Status Codes Guide for Beginners

HTTP Status Codes Guide for Beginners

Whenever a client sends an HTTP request, the server returns an appropriate HTTP response. To help interpret the response, the first line of the response includes a three-digit HTTP status code along with a descriptive message. These status codes make it easier to understand the outcome of a request, identify issues, and troubleshoot problems efficiently.

HTTP Communication Protocol
HTTP Communication Protocol

HTTP Status Codes

HTTP status codes are standardized according to internet protocols defined by the Internet Engineering Task Force (IETF). They are grouped into five categories based on the type of response returned by the server.

Complete List of HTTP Status Codes

The below list includes all standard status codes along with some of the non-standard codes like 420, 444, 449, 499, and 509.

Status CodeDescriptionExplanation
100ContinueThe server has received the initial request headers and the client can continue sending the request body. Commonly used for large uploads.
101Switching ProtocolsThe server agrees to switch communication protocols as requested by the client, such as upgrading from HTTP to WebSocket.
102ProcessingIndicates the server has received the request and is processing it but no response is available yet. Primarily used in WebDAV.
103Early HintsAllows the server to send preliminary response headers early, helping browsers preload resources before the final response arrives.
200OKThe request was successful, and the server returned the requested resource or completed the requested action.
201CreatedThe request succeeded and a new resource was successfully created, often after a POST request.
202AcceptedThe server accepted the request for processing, but the task has not yet been completed.
203Non-Authoritative InformationThe server successfully processed the request but returned modified or third-party metadata rather than the original response.
204No ContentThe request succeeded, but there is no content to return. Commonly used for delete or update actions.
205Reset ContentThe server processed the request and asks the client to reset or refresh its displayed content.
206Partial ContentOnly part of the requested resource is returned, usually when range headers are used for downloads or streaming.
207Multi-StatusProvides multiple status results for different operations in a single response. Used mainly in WebDAV.
208Already ReportedPrevents duplicate processing by indicating resources have already been reported in the response. Used in WebDAV.
226IM UsedThe server completed a request using instance manipulation techniques to optimize transferred data.
300Multiple ChoicesThe request has multiple possible responses, and the client may choose among them.
301Moved PermanentlyThe requested resource has permanently moved to a new URL. Search engines usually update links automatically.
302FoundThe resource temporarily exists at another URL. Browsers usually redirect automatically.
303See OtherDirects the client to retrieve the resource using a GET request at a different URL.
304Not ModifiedIndicates cached content is still valid, allowing the client to reuse local data instead of downloading again.
305Use Proxy (Deprecated)Previously instructed clients to access the resource through a proxy server. Deprecated for security reasons.
306UnusedReserved status code that is no longer used but retained for compatibility.
307Temporary RedirectSimilar to 302, but preserves the original HTTP method and request body during redirection.
308Permanent RedirectSimilar to 301, but guarantees the original request method remains unchanged.
400Bad RequestThe server cannot process the request because of invalid syntax, malformed data, or incorrect parameters.
401UnauthorizedAuthentication is required before accessing the requested resource.
402Payment RequiredReserved for future payment systems and rarely used in practice.
403ForbiddenThe server understands the request but refuses permission to access the resource.
404Not FoundThe requested resource could not be found on the server.
405Method Not AllowedThe HTTP method used is not supported for the requested resource.
406Not AcceptableThe server cannot provide content matching the client’s requested format or criteria.
407Proxy Authentication RequiredAuthentication through a proxy server is required before the request can proceed.
408Request TimeoutThe server timed out waiting for the client to complete the request.
409ConflictThe request conflicts with the current state of the resource, such as editing conflicts.
410GoneThe resource has been permanently removed and is no longer available.
411Length RequiredThe server requires a valid Content-Length header before processing the request.
412Precondition FailedOne or more request conditions in the headers were not satisfied.
413Content Too LargeThe request body exceeds the server’s allowed size limit.
414URI Too LongThe request URL is longer than the server can process.
415Unsupported Media TypeThe server does not support the format or media type of the submitted content.
416Range Not SatisfiableThe requested data range cannot be delivered because it falls outside the resource limits.
417Expectation FailedThe server cannot satisfy the expectations defined in the request headers.
418I’m a TeapotA humorous April Fools’ status code indicating the server refuses to brew coffee because it is a teapot.
420Enhance Your CalmUsed by some services to indicate excessive requests or rate limiting. Previously used by Twitter/X.
421Misdirected RequestThe request was sent to a server unable to generate a proper response.
422Unprocessable ContentThe request syntax is valid, but semantic errors prevent processing. Common in APIs.
423LockedThe requested resource is locked and cannot currently be modified.
424Failed DependencyThe request failed because another dependent request also failed.
425Too EarlyThe server refuses to process a request that could be replayed or duplicated.
426Upgrade RequiredThe client must switch to a newer protocol before continuing.
428Precondition RequiredThe server requires conditional requests to avoid accidental conflicts.
429Too Many RequestsThe client has exceeded the request limit within a certain period.
431Request Header Fields Too LargeThe request headers exceed the server’s size limits.
444No ResponseUsed by Nginx to close a connection without returning a response.
449Retry WithUsed by Microsoft servers to request additional information before retrying.
451Unavailable For Legal ReasonsAccess to the resource is restricted because of legal or governmental requirements.
499Client Closed RequestIndicates the client closed the connection before the server completed processing.
500Internal Server ErrorA generic server-side error indicating something unexpected went wrong.
501Not ImplementedThe server does not support the requested functionality or HTTP method.
502Bad GatewayThe server received an invalid response from an upstream server.
503Service UnavailableThe server is temporarily unavailable, often due to maintenance or overload.
504Gateway TimeoutThe server did not receive a timely response from an upstream server.
505HTTP Version Not SupportedThe server does not support the HTTP version used in the request.
506Variant Also NegotiatesA server configuration issue caused circular content negotiation.
507Insufficient StorageThe server does not have enough storage space to complete the request.
508Loop DetectedThe server detected an infinite loop while processing the request.
509Bandwidth Limit ExceededUsed by some hosting providers when bandwidth usage exceeds limits.
510Not ExtendedAdditional request extensions are required for the server to fulfill the request.
511Network Authentication RequiredThe client must authenticate to gain access to the network, such as a public Wi-Fi login portal.

Final Words

HTTP status codes play an important role in communication between a client and a server by indicating the result of a request. Whether a request is successful, redirected, blocked, invalid, or affected by a server issue, these status codes help developers and users quickly understand what happened behind the scenes. By learning the meaning of these response codes, you can better analyze web traffic, debug errors, and ensure smooth communication across web applications.

Leave a Comment

Your email address will not be published. Required fields are marked *