CodeWiz Logo

    CodeWiz

    HTTP Status Codes Cheat Sheet

    HTTP Status Codes Cheat Sheet

    26/12/2024

    Introduction

    HTTP status codes are issued by a server in response to a client's request made to the server. This cheat sheet provides a comprehensive list of HTTP status codes to help you understand their meanings and how to use them.

    Informational Responses (100–199)

    CodeMessageDescription
    100ContinueThe server has received the request headers and the client should proceed to send the request body.
    101Switching ProtocolsThe requester has asked the server to switch protocols and the server has agreed to do so.
    102ProcessingThe server has received and is processing the request, but no response is available yet.
    103Early HintsUsed to return some response headers before final HTTP message.

    Successful Responses (200–299)

    CodeMessageDescription
    200OKThe request has succeeded.
    201CreatedThe request has been fulfilled and resulted in a new resource being created.
    202AcceptedThe request has been accepted for processing, but the processing has not been completed.
    203Non-Authoritative InformationThe server successfully processed the request, but is returning information that may be from another source.
    204No ContentThe server successfully processed the request, but is not returning any content.
    205Reset ContentThe server successfully processed the request, but is not returning any content and requires that the requester reset the document view.
    206Partial ContentThe server is delivering only part of the resource due to a range header sent by the client.
    207Multi-StatusThe message body that follows is an XML message and can contain a number of separate response codes.
    208Already ReportedThe members of a DAV binding have already been enumerated in a previous reply to this request, and are not being included again.
    226IM UsedThe server has fulfilled a GET request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.

    Redirection Messages (300–399)

    CodeMessageDescription
    300Multiple ChoicesIndicates multiple options for the resource that the client may follow.
    301Moved PermanentlyThis and all future requests should be directed to the given URI.
    302FoundTells the client to look at (browse to) another URL.
    303See OtherThe response to the request can be found under another URI using a GET method.
    304Not ModifiedIndicates that the resource has not been modified since the version specified by the request headers.
    305Use ProxyThe requested resource is available only through a proxy, the address for which is provided in the response.
    306Switch ProxyNo longer used. Originally meant "Subsequent requests should use the specified proxy."
    307Temporary RedirectIn this case, the request should be repeated with another URI; however, future requests should still use the original URI.
    308Permanent RedirectThe request and all future requests should be repeated using another URI.

    Client Error Responses (400–499)

    CodeMessageDescription
    400Bad RequestThe server cannot or will not process the request due to an apparent client error.
    401UnauthorizedSimilar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet been provided.
    402Payment RequiredReserved for future use.
    403Forbiddenindicates the server understood the request but refuses to authorize it. Unlike 401, re-authentication won't help. This error typically means the client lacks necessary permissions.
    404Not FoundThe requested resource could not be found but may be available again in the future.
    405Method Not AllowedA request was made of a resource using a request method not supported by that resource.
    406Not AcceptableThe requested resource is only capable of generating content not acceptable according to the Accept headers sent in the request.
    407Proxy Authentication RequiredThe client must first authenticate itself with the proxy.
    408Request TimeoutThe server timed out waiting for the request.
    409ConflictIndicates that the request could not be processed because of conflict in the request, such as an edit conflict between multiple simultaneous updates.
    410GoneIndicates that the resource requested is no longer available and will not be available again.
    411Length RequiredThe request did not specify the length of its content, which is required by the requested resource.
    412Precondition FailedThe server does not meet one of the preconditions that the requester put on the request.
    413Payload Too LargeThe request is larger than the server is willing or able to process.
    414URI Too LongThe URI provided was too long for the server to process.
    415Unsupported Media TypeThe request entity has a media type which the server or resource does not support.
    416Range Not SatisfiableThe client has asked for a portion of the file (byte serving), but the server cannot supply that portion.
    417Expectation FailedThe server cannot meet the requirements of the Expect request-header field.
    418I'm a teapotThis code was defined in 1998 as one of the traditional IETF April Fools' jokes, in RFC 2324, Hyper Text Coffee Pot Control Protocol.
    421Misdirected RequestThe request was directed at a server that is not able to produce a response.
    422Unprocessable EntityThe request was well-formed but was unable to be followed due to semantic errors.
    423LockedThe resource that is being accessed is locked.
    424Failed DependencyThe request failed due to failure of a previous request.
    425Too EarlyIndicates that the server is unwilling to risk processing a request that might be replayed.
    426Upgrade RequiredThe client should switch to a different protocol such as TLS/1.0, given in the Upgrade header field.
    428Precondition RequiredThe origin server requires the request to be conditional.
    429Too Many RequestsThe user has sent too many requests in a given amount of time ("rate limiting").
    431Request Header Fields Too LargeThe server is unwilling to process the request because either an individual header field, or all the header fields collectively, are too large.
    451Unavailable For Legal ReasonsThe user-agent requested a resource that cannot legally be provided, such as a web page censored by a government.

    Server Error Responses (500–599)

    CodeMessageDescription
    500Internal Server ErrorA generic error message, given when an unexpected condition was encountered and no more specific message is suitable.
    501Not ImplementedThe server either does not recognize the request method, or it lacks the ability to fulfill the request.
    502Bad GatewayThe server was acting as a gateway or proxy and received an invalid response from the upstream server.
    503Service UnavailableThe server is currently unavailable (because it is overloaded or down for maintenance). Generally, this is a temporary state.
    504Gateway TimeoutThe server was acting as a gateway or proxy and did not receive a timely response from the upstream server.
    505HTTP Version Not SupportedThe server does not support the HTTP protocol version used in the request.
    506Variant Also NegotiatesTransparent content negotiation for the request results in a circular reference.
    507Insufficient StorageThe server is unable to store the representation needed to complete the request.
    508Loop DetectedThe server detected an infinite loop while processing a request with "Depth: infinity".
    510Not ExtendedFurther extensions to the request are required for the server to fulfill it.
    511Network Authentication RequiredThe client needs to authenticate to gain network access.