Skip to content
Kordu Tools

HTTP Status Code Reference

Interactive reference for all standard HTTP status codes with search and filtering.

1xx Informational

The server has received the initial part of the request and the client should continue with the request body. This is used with the Expect: 100-continue header to avoid sending a large body if the server would reject it.

Common causes:
  • Client sends Expect: 100-continue header
  • Server is ready for the request body
Example response:
HTTP/1.1 100 Continue

The server understands the Upgrade header field and agrees to switch to the protocol indicated. Commonly used when upgrading from HTTP to WebSocket.

Common causes:
  • WebSocket handshake via Upgrade header
  • Protocol negotiation
Example response:
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade

A WebDAV status code indicating the server has received the request and is processing it, but no response is available yet. Prevents the client from timing out.

Common causes:
  • Long-running WebDAV operations
  • Complex server-side processing
Example response:
HTTP/1.1 102 Processing

Used to return some response headers before the final HTTP message. Allows the browser to start preloading resources while the server is still preparing the full response.

Common causes:
  • Server wants to hint at Link headers for preloading
  • Optimising page load performance
Example response:
HTTP/1.1 103 Early Hints
Link: </style.css>; rel=preload; as=style

2xx Success

The standard success response. The meaning of the success depends on the HTTP method: GET returns the resource, POST returns the result of the action, etc.

Common causes:
  • Successful GET, POST, PUT, DELETE, or PATCH request
Example response:
HTTP/1.1 200 OK
Content-Type: application/json

{"status": "ok"}

Typically returned after a POST or PUT request. The response should include a Location header pointing to the newly created resource.

Common causes:
  • Successful resource creation via POST or PUT
Example response:
HTTP/1.1 201 Created
Location: /api/users/42

The request has been accepted but processing has not finished. Used for asynchronous operations where the server queues work for later execution.

Common causes:
  • Asynchronous job submission
  • Queued background processing
Example response:
HTTP/1.1 202 Accepted

{"jobId": "abc-123", "status": "queued"}

The returned metadata is not exactly the same as available from the origin server. Typically used when a proxy or intermediary has modified the response.

Common causes:
  • Proxy or CDN modified the response headers or body
Example response:
HTTP/1.1 203 Non-Authoritative Information

The server has successfully fulfilled the request and there is no additional content to return. Commonly used for DELETE operations or successful updates that do not need a response body.

Common causes:
  • Successful DELETE request
  • PUT/PATCH with no body needed in response
Example response:
HTTP/1.1 204 No Content

The server has fulfilled the request and the client should reset the document view (e.g., clear a form). No response body is sent.

Common causes:
  • Form submission where the server wants the client to clear the form
Example response:
HTTP/1.1 205 Reset Content

The server is returning part of the resource in response to a Range request. Used for resumable downloads and streaming. The Content-Range header indicates which part is being returned.

Common causes:
  • Client sends Range header for partial download
  • Video or audio streaming
Example response:
HTTP/1.1 206 Partial Content
Content-Range: bytes 0-1023/4096

A WebDAV status code that provides status for multiple independent operations in a single response body, encoded as XML.

Common causes:
  • WebDAV batch operations affecting multiple resources
Example response:
HTTP/1.1 207 Multi-Status
Content-Type: application/xml

A WebDAV status code used inside a 207 Multi-Status response to avoid repeatedly enumerating the internal members of multiple bindings to the same collection.

Common causes:
  • WebDAV binding operations with duplicate members
Example response:
HTTP/1.1 208 Already Reported

The 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.

Common causes:
  • Delta encoding with If-None-Match and A-IM headers
Example response:
HTTP/1.1 226 IM Used
IM: feed

3xx Redirection

The requested resource has multiple representations, each with its own specific location. The client can select the most appropriate one.

Common causes:
  • Content negotiation with multiple available formats
Example response:
HTTP/1.1 300 Multiple Choices

The requested resource has been permanently moved to the URL given by the Location header. Search engines will update their link to the new URL. Browsers cache this redirect.

Common causes:
  • Site migration
  • URL restructuring
  • Domain change
Example response:
HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-path

The resource temporarily resides at a different URI. The client should continue to use the original URI for future requests. Historically ambiguous about method preservation; use 303 or 307 for clarity.

Common causes:
  • Temporary redirect during maintenance
  • A/B testing
  • Login redirects
Example response:
HTTP/1.1 302 Found
Location: https://example.com/temporary

The server is redirecting the client to a different resource using a GET request. Commonly used after a POST to redirect the client to a result page.

Common causes:
  • POST/Redirect/GET pattern
  • Form submission redirect
Example response:
HTTP/1.1 303 See Other
Location: /confirmation

Returned when the client sends a conditional request (If-None-Match or If-Modified-Since) and the resource has not changed. The client should use its cached version. No body is sent.

Common causes:
  • Conditional GET with ETag or Last-Modified matching
  • Browser cache validation
Example response:
HTTP/1.1 304 Not Modified
ETag: "abc123"

Similar to 302, but explicitly requires the client to use the same HTTP method and body when following the redirect. Introduced to resolve the ambiguity of 302.

Common causes:
  • Temporary redirect preserving POST method
  • Load balancing
Example response:
HTTP/1.1 307 Temporary Redirect
Location: https://example.com/temp

Similar to 301, but explicitly requires the client to use the same HTTP method and body when following the redirect. Prevents method change from POST to GET.

Common causes:
  • Permanent URL change that must preserve HTTP method
Example response:
HTTP/1.1 308 Permanent Redirect
Location: https://example.com/new

4xx Client Error

The server cannot process the request due to a client error such as malformed syntax, invalid request message framing, or deceptive request routing.

Common causes:
  • Malformed JSON or XML body
  • Invalid query parameters
  • Missing required fields
Example response:
HTTP/1.1 400 Bad Request

{"error": "Invalid JSON in request body"}

The request requires authentication. The response must include a WWW-Authenticate header indicating the applicable authentication scheme. Despite the name, this is about authentication, not authorisation.

Common causes:
  • Missing or expired authentication token
  • Invalid credentials
  • Expired session
Example response:
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer

Reserved for future use. Some APIs use this to indicate that payment is required to access the resource, but there is no standard convention.

Common causes:
  • API billing limit reached
  • Subscription required
Example response:
HTTP/1.1 402 Payment Required

The client does not have permission to access the requested resource. Unlike 401, re-authenticating will not help — the server knows who you are but you lack access.

Common causes:
  • Insufficient permissions or role
  • IP-based access restriction
  • Resource access denied by policy
Example response:
HTTP/1.1 403 Forbidden

{"error": "You do not have access to this resource"}

The server cannot find the requested resource. In the browser, this means the URL is not recognised. In an API, this can mean the endpoint is valid but the specific resource does not exist.

Common causes:
  • Incorrect URL or path
  • Resource deleted
  • Typo in the endpoint
Example response:
HTTP/1.1 404 Not Found

{"error": "User not found"}

The request method is known by the server but is not supported by the target resource. The response must include an Allow header listing the supported methods.

Common causes:
  • Using POST on a read-only endpoint
  • Using DELETE on a resource that does not support it
Example response:
HTTP/1.1 405 Method Not Allowed
Allow: GET, HEAD

The server cannot produce a response matching the list of acceptable values defined in the request's Accept, Accept-Encoding, or Accept-Language headers.

Common causes:
  • Client requests XML but server only serves JSON
  • Accept header mismatch
Example response:
HTTP/1.1 406 Not Acceptable

Similar to 401, but the client must first authenticate itself with the proxy. The proxy must return a Proxy-Authenticate header.

Common causes:
  • Corporate proxy requires authentication
Example response:
HTTP/1.1 407 Proxy Authentication Required
Proxy-Authenticate: Basic

The server did not receive a complete request within the time it was prepared to wait. The client may repeat the request without modifications.

Common causes:
  • Slow client connection
  • Network interruption during upload
Example response:
HTTP/1.1 408 Request Timeout

The request could not be completed due to a conflict with the current state of the target resource. Often used in version control or when two clients try to modify the same resource simultaneously.

Common causes:
  • Concurrent edit conflict
  • Duplicate resource creation
  • Optimistic locking failure
Example response:
HTTP/1.1 409 Conflict

{"error": "Resource version mismatch"}

The target resource is no longer available at the server and no forwarding address is known. Unlike 404, this indicates the condition is permanent.

Common causes:
  • Deliberately removed resource
  • Expired content
  • Deprecated API endpoint
Example response:
HTTP/1.1 410 Gone

The server refuses to accept the request without a defined Content-Length header. The client may repeat the request with the header added.

Common causes:
  • Missing Content-Length header on POST/PUT request
Example response:
HTTP/1.1 411 Length Required

One or more conditions given in the request header fields (such as If-Match or If-Unmodified-Since) evaluated to false when tested on the server.

Common causes:
  • ETag mismatch with If-Match
  • Conditional update failed
Example response:
HTTP/1.1 412 Precondition Failed

The request entity is larger than the server is willing or able to process. The server may close the connection or return a Retry-After header.

Common causes:
  • File upload exceeds size limit
  • JSON body too large
Example response:
HTTP/1.1 413 Content Too Large

The URI provided was too long for the server to process. This often happens when a client converts a POST request to a GET with long query parameters.

Common causes:
  • Extremely long query string
  • GET request used instead of POST for large data
Example response:
HTTP/1.1 414 URI Too Long

The origin server is refusing to service the request because the payload is in a format not supported by the target resource for the requested method.

Common causes:
  • Sending XML to a JSON-only endpoint
  • Missing or incorrect Content-Type header
Example response:
HTTP/1.1 415 Unsupported Media Type

The client has asked for a portion of the file (byte serving), but the server cannot supply that range. For example, the requested range is beyond the end of the file.

Common causes:
  • Range header exceeds file size
  • Invalid byte range
Example response:
HTTP/1.1 416 Range Not Satisfiable
Content-Range: bytes */4096

The expectation given in the request's Expect header could not be met by the server.

Common causes:
  • Expect: 100-continue not supported by the server
Example response:
HTTP/1.1 417 Expectation Failed

Defined by RFC 2324 (Hyper Text Coffee Pot Control Protocol) as an April Fools' joke. The server refuses the attempt to brew coffee with a teapot. Some servers implement it as an Easter egg.

Common causes:
  • Attempting to brew coffee with a teapot
  • Easter egg endpoint
Example response:
HTTP/1.1 418 I'm a Teapot

The request was directed at a server that is not able to produce a response. This can happen when a connection is reused for a request to a different host that the server is not configured to handle.

Common causes:
  • TLS certificate mismatch with HTTP/2 connection coalescing
Example response:
HTTP/1.1 421 Misdirected Request

The server understands the content type and the syntax is correct, but it was unable to process the contained instructions. Commonly used for validation errors in APIs.

Common causes:
  • Validation errors in request body
  • Semantically invalid data
  • Business rule violations
Example response:
HTTP/1.1 422 Unprocessable Content

{"errors": [{"field": "email", "message": "Invalid format"}]}

A WebDAV status code indicating the source or destination resource is locked and the request cannot be completed.

Common causes:
  • WebDAV resource locked by another user
Example response:
HTTP/1.1 423 Locked

A WebDAV status code indicating the method could not be performed on the resource because the requested action depended on another action which failed.

Common causes:
  • Previous step in a WebDAV batch failed
Example response:
HTTP/1.1 424 Failed Dependency

The server is unwilling to risk processing a request that might be replayed. Designed to prevent replay attacks with TLS 1.3 early data (0-RTT).

Common causes:
  • TLS 1.3 early data (0-RTT) request rejected
Example response:
HTTP/1.1 425 Too Early

The server refuses to perform the request using the current protocol but might be willing to do so after the client upgrades to a different protocol.

Common causes:
  • Server requires TLS
  • HTTP/2 upgrade required
Example response:
HTTP/1.1 426 Upgrade Required
Upgrade: TLS/1.3

The server requires the request to include conditional headers (like If-Match) to prevent the lost update problem where multiple clients modify a resource simultaneously.

Common causes:
  • Server enforces optimistic concurrency control
Example response:
HTTP/1.1 428 Precondition Required

The user has exceeded the rate limit. The response may include a Retry-After header indicating how long to wait before making a new request.

Common causes:
  • API rate limit exceeded
  • Brute-force protection triggered
  • DDoS mitigation
Example response:
HTTP/1.1 429 Too Many Requests
Retry-After: 60

The server is unwilling to process the request because its header fields are too large. The request may be resubmitted after reducing the size of the request header fields.

Common causes:
  • Excessive cookies
  • Very large authorisation tokens
Example response:
HTTP/1.1 431 Request Header Fields Too Large

The server is denying access to the resource as a consequence of a legal demand. Named after Ray Bradbury's novel Fahrenheit 451.

Common causes:
  • Government censorship
  • Court order
  • DMCA takedown
Example response:
HTTP/1.1 451 Unavailable For Legal Reasons

5xx Server Error

A generic error message indicating the server encountered an unexpected condition that prevented it from fulfilling the request. This is a catch-all for unhandled errors.

Common causes:
  • Unhandled exception in server code
  • Database connection failure
  • Configuration error
Example response:
HTTP/1.1 500 Internal Server Error

{"error": "Something went wrong"}

The server does not support the functionality required to fulfil the request. This is the appropriate response when the server does not recognise the request method.

Common causes:
  • Unsupported HTTP method
  • Feature not yet implemented on the server
Example response:
HTTP/1.1 501 Not Implemented

The server, while acting as a gateway or proxy, received an invalid response from the upstream server it accessed in attempting to fulfil the request.

Common causes:
  • Upstream server is down
  • Malformed response from backend
  • Load balancer cannot reach origin
Example response:
HTTP/1.1 502 Bad Gateway

The server is not ready to handle the request. Common causes include a server that is down for maintenance or is overloaded. The response should include a Retry-After header when possible.

Common causes:
  • Server maintenance
  • Server overloaded
  • Dependent service unavailable
Example response:
HTTP/1.1 503 Service Unavailable
Retry-After: 300

The server, while acting as a gateway or proxy, did not receive a timely response from the upstream server needed to complete the request.

Common causes:
  • Upstream server too slow
  • Network timeout between proxy and origin
  • Long-running query
Example response:
HTTP/1.1 504 Gateway Timeout

The server does not support the major version of HTTP that was used in the request message.

Common causes:
  • Client uses HTTP/3 on a server that only supports HTTP/1.1
Example response:
HTTP/1.1 505 HTTP Version Not Supported

The server has an internal configuration error: the chosen variant resource is configured to engage in content negotiation itself, resulting in a circular reference.

Common causes:
  • Misconfigured content negotiation on the server
Example response:
HTTP/1.1 506 Variant Also Negotiates

A WebDAV status code indicating the server is unable to store the representation needed to successfully complete the request. This is a temporary condition.

Common causes:
  • Server disk full
  • Quota exceeded
Example response:
HTTP/1.1 507 Insufficient Storage

A WebDAV status code indicating the server terminated an operation because it encountered an infinite loop while processing a request with Depth: infinity.

Common causes:
  • Circular references in WebDAV resources
Example response:
HTTP/1.1 508 Loop Detected

The policy for accessing the resource has not been met in the request. The server should send back all the information necessary for the client to issue an extended request.

Common causes:
  • Server requires an HTTP extension not present in the request
Example response:
HTTP/1.1 510 Not Extended

The client needs to authenticate to gain network access. Typically used by captive portals (e.g., hotel or airport Wi-Fi) to intercept traffic and redirect users to a login page.

Common causes:
  • Captive portal requiring login
  • Network-level authentication gateway
Example response:
HTTP/1.1 511 Network Authentication Required

How to use

  1. 1

    Browse by category

    Status codes are grouped into 1xx Informational, 2xx Success, 3xx Redirection, 4xx Client Error, and 5xx Server Error categories.

  2. 2

    Search for a code

    Type a code number, name, or keyword into the search bar to filter the list instantly.

  3. 3

    Expand for details

    Click any status code to see its full description, common causes, and an example HTTP response.

Frequently asked questions

Does this include all standard HTTP status codes?
Yes. The reference includes all standard codes from 100 to 511 as defined by IANA, including WebDAV extensions and commonly encountered codes.
What does the 'Common' badge mean?
Codes marked as Common are the ones most frequently encountered in everyday web development and API work, such as 200, 301, 404, and 500.
Is my search data sent to a server?
No. The entire reference is loaded in your browser. Searching and filtering happen client-side with no network requests.
Can I use this as a quick lookup while debugging?
Absolutely. The search bar supports filtering by code number, name, or keyword, so you can find what you need in seconds.

Look up any HTTP status code instantly with this interactive reference.

Codes are grouped by category (1xx through 5xx) and each entry shows the

code number, name, and a short description. Click any code to expand its

full description, common causes, and an example response. Commonly used

codes are highlighted for quick scanning. Filter by code number, name, or

description using the search bar.

Related tools