Loading…
Look up HTTP status code meanings and fixes. Use as quick reference; for header debug use http-header-parser. Input: code or search. Returns description. 100% client-side.
HTTP Status Codes is loading — interactive editor will appear here. Use examples below to try instantly once loaded.
Press ? for keyboard shortcuts
Provides a quick-reference guide to all HTTP status codes organized by category (1xx-5xx) with descriptions, common causes, and when each status code is typically returned by servers.
HTTP status codes are essential for understanding API behavior, but their meanings are scattered across documentation. This tool consolidates all status codes in one searchable, categorized reference.
This tool is part of the DevStackIO platform — a collection of free online developer tools from DevStackIO. Browse more free developer resources on DevStackIO.
Web developers debugging API responses, backend engineers designing error handling, students learning HTTP protocols, and DevOps engineers troubleshooting web server issues.
Browse status codes by category using the category tabs (Informational, Success, Redirection, Client Error, Server Error)
Use the search bar to find a specific status code number or keyword
Read the description and common use case for each status code
Click on any status code to see detailed information about when it's used
Use the copy button to quickly copy status code numbers for use in code
Search: 'rate limit'. Output: 429 Too Many Requests — returned when a client exceeds the rate limit, with Retry-After header.Browse: 2xx category. Output: List of all success codes (200, 201, 204, etc.) with descriptions of when to use each.What's the difference between 301 and 302 redirects?
301 is permanent (search engines update their index), 302 is temporary.
When should I use 204 No Content?
Use it when the request succeeds but there's no response body, like after a successful DELETE.
Why is 418 I'm a teapot in the list?
It's an April Fools joke from RFC 2324, but it is a real registered status code.
Should I return 400 or 422 for validation errors?
400 for malformed requests, 422 for well-formed requests with invalid data.
Authoritative specifications, standards, and in-depth reading for HTTP Status Codes.
Tool is loading — interactive editor will appear here. Use examples below to try instantly once loaded.
Parse raw HTTP headers into readable name-value pairs. Use when debugging responses; for URL parts use url-parser. Input: header text ≤10MB. Returns table of headers. 100% client-side.
Split any URL into protocol, host, path, and query params. Use when inspecting URLs; for encoding query strings use url-encoder. Input: URL text. Returns component table. 100% client-side.
Parse user-agent strings into browser, OS, and device. Use when debugging traffic; for live device data use device-information. Input: UA string. Returns parsed fields. 100% client-side.
Calculate network, broadcast, and host range from CIDR. Use for subnet math; for geo lookup use ip-lookup. Input: IP/CIDR. Returns network details. 100% client-side.
Look up DNS records for any domain. Use when checking DNS; for IP geo use ip-lookup. Input: domain name. Returns A, MX, TXT records. 100% client-side.
Look up geolocation and ISP for any IP address. Use for geo data; for subnet math use ip-calculator. Input: IPv4/IPv6. Returns location and ASN. 100% client-side.
Generate Basic Auth headers from username and password. Use when testing APIs; for JWTs use jwt-generator. Input: credentials text. Returns Authorization header. 100% client-side.
Calculate IPv4 subnets, masks, and host counts. Use for IPv4 planning; for IPv6 use ipv6-calculator. Input: CIDR or mask. Returns subnet table. 100% client-side.
Learn the concepts behind this tool.
Browse all glossary termsThe server has received the request headers and the client should proceed to send the request body.
The requester has asked the server to switch protocols and the server has agreed to do so.
The server has received and is processing the request, but no response is available yet.
Used to return some response headers before final HTTP message.
Standard response for successful HTTP requests.
The request has been fulfilled, resulting in the creation of a new resource.
The request has been accepted for processing, but the processing has not been completed.
The server is a proxy transforming the 200 OK response.
The server successfully processed the request and is not returning any content.
The server successfully processed the request, but is not returning any content.
The server is delivering only part of the resource due to a range header in the request.
The message body that follows is an XML message and can contain a number of separate response codes.
The members of a DAV binding have already been enumerated in a preceding reply.
The server has fulfilled a request for the resource, and the response is a representation of the result.
Indicates multiple options for the resource from which the client may choose.
This and all future requests should be directed to the given URI.
Tells the client to look at another URL.
The response can be found under a different URI using a GET method.
Indicates the resource has not been modified since the version specified by the request headers.
The requested resource is available only through a proxy.
No longer used. Reserved for future use.
The request should be repeated with another URI but future requests should still use the original URI.
The request and all future requests should be repeated using another URI.
The server cannot or will not process the request due to an apparent client error.
Authentication is required and has either failed or not been provided.
Reserved for future use.
The request was valid, but the server is refusing action.
The requested resource could not be found but may be available in the future.
A request method is not supported for the requested resource.
The requested resource is capable of generating content not acceptable according to the Accept headers.
The client must first authenticate itself with the proxy.
The server timed out waiting for the request from the client.
Indicates that the request could not be processed because of conflict in the current state of the resource.
Indicates that the resource requested is no longer available and will not be available again.
The request did not specify the length of its content, which is required by the requested resource.
The server does not meet one of the preconditions that the requester put on the request.
The request is larger than the server is willing or able to process.
The URI provided was too long for the server to process.
The request entity has a media type which the server or resource does not support.
The client has asked for a portion of the file, but the server cannot supply that portion.
The server cannot meet the requirements of the Expect request-header field.
The server refuses the attempt to brew coffee with a teapot.
The request was directed at a server that is unable to produce a response.
The request was well-formed but was unable to be followed due to semantic errors.
The resource that is being accessed is locked.
The request failed due to failure of a previous request.
Indicates that the server is unwilling to risk processing a request that might be replayed.
The client should switch to a different protocol.
The origin server requires the request to be conditional.
The user has sent too many requests in a given amount of time (rate limiting).
The server is unwilling to process the request because either an individual header field, or all the header fields collectively, are too large.
The server is denying access to the resource as a consequence of a legal demand.
A generic error message, given when an unexpected condition was encountered.
The server either does not recognize the request method, or it lacks the ability to fulfil the request.
The server was acting as a gateway or proxy and received an invalid response from the upstream server.
The server cannot handle the request (because it is overloaded or down for maintenance).
The server was acting as a gateway or proxy and did not receive a timely response from the upstream server.
The server does not support the HTTP protocol version used in the request.
Transparent content negotiation for the request results in a circular reference.
The server is unable to store the representation needed to complete the request.
The server detected an infinite loop while processing the request.
Further extensions to the request are required for the server to fulfil it.
The client needs to authenticate to gain network access.