HandyTools Hub

HTTP Status Reference

Browse HTTP status codes (1xx–5xx) with descriptions.

Your data never leaves your browser

100

Continue

The server has received the request headers and the client should proceed to send the request body.

101

Switching Protocols

The server is switching protocols as requested by the client, for example upgrading from HTTP to WebSocket.

102

Processing

The server has received and is processing the request, but no response is available yet (WebDAV).

103

Early Hints

Used to return some response headers before the final HTTP message, allowing the client to preload resources.

200

OK

The request has succeeded. The meaning depends on the HTTP method (GET, POST, PUT, DELETE, etc.).

201

Created

The request has been fulfilled and resulted in a new resource being created, typically after a POST request.

202

Accepted

The request has been accepted for processing but the processing has not been completed yet.

203

Non-Authoritative Information

The returned metadata may be from a third-party copy rather than the origin server.

204

No Content

The server successfully processed the request and is not returning any content body.

205

Reset Content

The server successfully processed the request and asks the client to reset the document view.

206

Partial Content

The server is delivering only part of the resource due to a range header sent by the client.

300

Multiple Choices

The request has more than one possible response. The user or user agent should choose one of them.

301

Moved Permanently

The URL of the requested resource has been changed permanently. The new URL is given in the response.

302

Found

The requested resource resides temporarily under a different URI. The client should continue to use the original URI.

303

See Other

The server sent this response to direct the client to get the requested resource at another URI with a GET request.

304

Not Modified

Indicates that the resource has not been modified since the version specified by the request headers (used for caching).

307

Temporary Redirect

The server sends this response to direct the client to a different URI, but the client must use the same HTTP method.

308

Permanent Redirect

The resource is now permanently located at another URI, and the client must use the same HTTP method for future requests.

400

Bad Request

The server cannot or will not process the request due to something that is perceived to be a client error (malformed syntax).

401

Unauthorized

The client must authenticate itself to get the requested response. Often called "unauthenticated" rather than "unauthorized".

403

Forbidden

The client does not have access rights to the content; the server is refusing to give the requested resource.

404

Not Found

The server can not find the requested resource. This is the most well-known HTTP error status code.

405

Method Not Allowed

The request method is known by the server but is not supported by the target resource.

408

Request Timeout

The server timed out waiting for the request from the client. The client may repeat the request without modifications.

409

Conflict

The request could not be completed due to a conflict with the current state of the target resource.

410

Gone

The requested content has been permanently deleted from the server, with no forwarding address.

413

Payload Too Large

The request entity is larger than limits defined by the server; the server might close the connection or return a Retry-After header.

414

URI Too Long

The URI requested by the client is longer than the server is willing to interpret.

415

Unsupported Media Type

The media format of the requested data is not supported by the server, so the server is rejecting the request.

418

I'm a teapot

The server refuses the attempt to brew coffee with a teapot. This is an April Fools joke from RFC 2324 (HTCPCP).

422

Unprocessable Entity

The request was well-formed but was unable to be followed due to semantic errors (WebDAV).

429

Too Many Requests

The user has sent too many requests in a given amount of time ("rate limiting"). The response should include a Retry-After header.

451

Unavailable For Legal Reasons

The server is denying access to the resource as a consequence of a legal demand (e.g., censorship or copyright).

500

Internal Server Error

The server has encountered a situation it does not know how to handle. This is a generic server error response.

501

Not Implemented

The request method is not supported by the server and cannot be handled. The server either does not recognize the request method or lacks the ability to fulfill it.

502

Bad Gateway

The server, while acting as a gateway or proxy, received an invalid response from the upstream server.

503

Service Unavailable

The server is not ready to handle the request. Common causes are server maintenance or temporary overloading.

504

Gateway Timeout

The server, while acting as a gateway or proxy, did not get a response in time from the upstream server.

HTTP Status Reference is a searchable, color-coded directory of the response codes you actually meet in logs and APIs. Instead of paging through specification text, you can look up what 307 or 429 means in seconds. It serves developers debugging a failing endpoint, operations engineers reading proxy logs, and anyone writing error handling that needs to branch on the right code.

What the Reference Actually Lists

The list is deliberately curated rather than exhaustive. It holds 38 codes, and knowing the set prevents confusion when a code you expect is absent.

ClassCountCodes included
1xx4100, 101, 102, 103
2xx7200, 201, 202, 203, 204, 205, 206
3xx7300, 301, 302, 303, 304, 307, 308
4xx15400, 401, 403, 404, 405, 408, 409, 410, 413, 414, 415, 418, 422, 429, 451
5xx5500, 501, 502, 503, 504

Notable gaps include 305 Use Proxy and 306, 402 Payment Required, the remaining 4xx codes such as 406, 407, 411, 412, 416, 417, 426, 428 and 431, and every 5xx above 504. The reference describes common behavior, not the complete IANA register.

Searching and Filtering

The search box accepts three kinds of query. A complete three-digit number is matched exactly, so 404 returns only Not Found. A shorter digit string matches as a prefix, so 40 lists all seven codes beginning with 40 and 5 lists the five server errors. Anything else is matched case-insensitively against both the code name and its description, so teapot finds 418 and rate finds 429.

The category tabs work alongside search rather than replacing it. Selecting 4xx restricts the list to client errors, and typing in the search box then narrows that subset further. Picking a category clears the unsearched codes, which makes it easy to scan one class in isolation.

The Codes People Confuse

401 vs 403. 401 Unauthorized means the request lacks valid authentication credentials; 403 Forbidden means the credentials are understood but do not grant access. Sending 403 when the client simply has not logged in leaks less information but misleads the caller.

301 vs 302. 301 is a permanent move and tells crawlers and browsers to update their records. 302 is temporary and preserves the original URL for future requests. The sibling codes 307 and 308 mean temporary and permanent redirect that preserve the original HTTP method, unlike 301 and 302, which historically allowed method changes.

502 vs 503 vs 504. All three come from an intermediary or an overloaded origin. 502 is a malformed upstream response, 503 is a deliberate refusal, and 504 is a timeout. The Retry-After header is most meaningful on 503 and 429.

204 vs 200. 204 No Content confirms success with an empty body, which is common after a DELETE. Returning 200 with an empty body is legal but less precise.

Where the Codes Come From

The core codes are defined by the HTTP semantics specification and related documents. A few entries carry specific provenance: 102 Processing and 422 Unprocessable Entity are WebDAV extensions, 103 Early Hints supports preloading, 451 Unavailable For Legal Reasons was added for legally blocked content, and 418 traces to an April Fools RFC. The reference notes these origins in the descriptions so you can distinguish standards work from extensions and jokes. Because the set is curated, a code that appears in the IANA registry but not here is not necessarily invalid; it is simply outside the day-to-day list this page maintains.

Reading a Response in Context

When you see a status code, the useful next question is who owns the fix. A 4xx belongs to the caller: change the request, add credentials, slow down, or correct the body. A 5xx belongs to the server or its operators: retry later, check the upstream service, or inspect logs. That single split tells you whether a retry loop makes sense.

Method and semantics matter as well. A successful DELETE is often better expressed as 204 No Content than 200 with an empty body, and a 201 Created should come with a Location header pointing at the new resource. A 405 Method Not Allowed should list acceptable methods in an Allow header, and a 429 should carry Retry-After. Those header hints are not part of the reference, but they are part of using each code correctly.

The code is also only half of the contract. Headers and cached state carry meaning too. A 304 Not Modified is a caching success, not an error, and a 3xx that a browser follows automatically may look like a 200 by the time client code observes it.

Common Mistakes

Returning 200 with an error message in the body, which breaks every client that checks the status code. Using 302 for a permanent move and then losing accumulated search signals. Treating 401 as “not allowed” and using it where 403 belongs, or the reverse. Retrying a 4xx blindly: a 400, 401, or 422 will not succeed until the request changes. And using 500 for anything unexpected when a more specific 502, 503, or 504 would point at the real cause.

Frequently Asked Questions

How many status codes are in this reference?

The reference contains 38 codes: four in the 1xx class, seven 2xx, seven 3xx, fifteen 4xx, and five 5xx. The category tabs show these counts and update as you filter.

Why is 306 or 425 missing from the list?

The list is a curated set of commonly encountered codes rather than the full IANA registry. 306 is unused in practice, and registrations such as 425 Too Early are omitted because they are rare. Search or category filtering only ever works on the 38 codes that are actually present.

What does searching for 40 return?

A numeric query matches by prefix, so 40 returns every code beginning with those digits: 400, 401, 403, 404, 405, 408, and 409. A full three-digit query such as 404 is matched exactly and returns only that code.

Is 418 a real HTTP status code?

It began as an April Fools joke in RFC 2324, the Hyper Text Coffee Pot Control Protocol, and is included here because it has become a widely recognized cultural reference. It is not part of the core HTTP specification and should not be used for real error handling.

What is the practical difference between 502, 503, and 504?

502 Bad Gateway means a proxy or gateway received an invalid response from the upstream server. 503 Service Unavailable means the server is temporarily refusing requests, often for maintenance or overload. 504 Gateway Timeout means the upstream server did not respond in time.

Does the reference explain WebDAV status codes?

Yes. Codes such as 102 Processing and 422 Unprocessable Entity carry WebDAV in their descriptions, so you can tell when a code comes from an extension rather than the core specification.

Reviewed by the HandyTools Hub team · Last updated