HTTP status codes
Web & developerWhat does HTTP status 404 mean?
Look up any HTTP status code: what 200, 301, 404, 429 or 503 means, when a server sends it, whether caches keep it and which RFC defines it.
Find a status code
What you enter stays on your device while you use this tool. Opening a shared link sends the settings in its address to HowToolbox to prepare the page.
Such as 404, 5xx or redirect
Showing 64 of 64
HTTP 404
Not Found
The server has nothing at this address, or will not say whether it does. The most common error on the web.
Status 404 in detail
- Class
- 4xx Client error: the request has a problem
- Cacheable by default
- Yes, even without cache headers
- In the registry
- Assigned
- Defined in
- RFC 9110 §15.5.5
Servers and frameworks sometimes use codes in their own way, and unregistered codes (such as 499 or 520) come from single vendors and are not listed.
Sponsored Links
HTTP status codes in the IANA registry
-
- Reason phrase
- Continue
- Meaning
- The server has received the request headers and the client should go on sending the body. Sent after a request with Expect: 100-continue.
- Defined in
- RFC 9110 §15.2.1
-
- Reason phrase
- Switching Protocols
- Meaning
- The server agrees to switch to the protocol the client asked for in the Upgrade header, for example to a WebSocket.
- Defined in
- RFC 9110 §15.2.2
-
- Reason phrase
- Processing
- Meaning
- A WebDAV server is still working on a long request and has no final answer yet. Deprecated in later WebDAV specifications.
- Defined in
- RFC 2518
-
- Reason phrase
- Early Hints
- Meaning
- An early, interim answer with Link headers, so the browser can start loading styles and scripts while the server prepares the real response.
- Defined in
- RFC 8297
-
- Reason phrase
- Upload Resumption Supported
- Meaning
- An interim answer telling the client that the server supports resumable uploads, from an Internet-Draft. A temporary registration that expires unless renewed.
- Defined in
- draft-ietf-httpbis-resumable-upload-05
-
- Reason phrase
- OK
- Meaning
- The request succeeded. The body holds the result: the page for a GET, the outcome of the action for a POST.
- Defined in
- RFC 9110 §15.3.1
-
- Reason phrase
- Created
- Meaning
- The request created a new resource. The Location header usually points to it.
- Defined in
- RFC 9110 §15.3.2
-
- Reason phrase
- Accepted
- Meaning
- The request was accepted for processing, but the work is not finished, for example a queued job.
- Defined in
- RFC 9110 §15.3.3
-
- Reason phrase
- Non-Authoritative Information
- Meaning
- Success, but a transforming proxy changed the content from what the origin server sent.
- Defined in
- RFC 9110 §15.3.4
-
- Reason phrase
- No Content
- Meaning
- Success with no body to send back, typical for a save or a delete. The browser stays on the current page.
- Defined in
- RFC 9110 §15.3.5
| Meaning | |||
|---|---|---|---|
| Continue | The server has received the request headers and the client should go on sending the body. Sent after a request with Expect: 100-continue. | RFC 9110 §15.2.1 | |
| Switching Protocols | The server agrees to switch to the protocol the client asked for in the Upgrade header, for example to a WebSocket. | RFC 9110 §15.2.2 | |
| Processing | A WebDAV server is still working on a long request and has no final answer yet. Deprecated in later WebDAV specifications. | RFC 2518 | |
| Early Hints | An early, interim answer with Link headers, so the browser can start loading styles and scripts while the server prepares the real response. | RFC 8297 | |
| Upload Resumption Supported | An interim answer telling the client that the server supports resumable uploads, from an Internet-Draft. A temporary registration that expires unless renewed. | draft-ietf-httpbis-resumable-upload-05 | |
| OK | The request succeeded. The body holds the result: the page for a GET, the outcome of the action for a POST. | RFC 9110 §15.3.1 | |
| Created | The request created a new resource. The Location header usually points to it. | RFC 9110 §15.3.2 | |
| Accepted | The request was accepted for processing, but the work is not finished, for example a queued job. | RFC 9110 §15.3.3 | |
| Non-Authoritative Information | Success, but a transforming proxy changed the content from what the origin server sent. | RFC 9110 §15.3.4 | |
| No Content | Success with no body to send back, typical for a save or a delete. The browser stays on the current page. | RFC 9110 §15.3.5 | |
| Reset Content | Success; the client should reset the form or view that sent the request. | RFC 9110 §15.3.6 | |
| Partial Content | The server sends only the part of the file asked for in the Range header, for resumed downloads and video seeking. | RFC 9110 §15.3.7 | |
| Multi-Status | A WebDAV answer whose XML body holds a separate status for each of several resources. | RFC 4918 | |
| Already Reported | Inside a WebDAV multi-status answer: this resource was already listed earlier, so it is not repeated. | RFC 5842 | |
| IM Used | The server answered a GET with a delta (instance manipulations applied to the current version) instead of the whole resource. | RFC 3229 | |
| Multiple Choices | There are several versions of the resource, such as languages or formats, and the client should choose one. | RFC 9110 §15.4.1 | |
| Moved Permanently | The resource has moved for good to the address in Location. Browsers and search engines update their links; a POST may turn into a GET. | RFC 9110 §15.4.2 | |
| Found | The resource is temporarily at another address (Location). Keep using the old address; a POST may turn into a GET. | RFC 9110 §15.4.3 | |
| See Other | Go and GET another address for the answer, typically after a form POST, so a reload does not send the form again. | RFC 9110 §15.4.4 | |
| Not Modified | The cached copy is still valid, so the server sends no body. The answer to a conditional request with If-None-Match or If-Modified-Since. | RFC 9110 §15.4.5 | |
| Use Proxy | Deprecated: asked the client to repeat the request through a proxy. Browsers ignore it for security reasons. | RFC 9110 §15.4.6 | |
| Switch Proxy | Reserved and no longer used. It was once Switch Proxy in a draft specification. | RFC 9110 §15.4.7 | |
| Temporary Redirect | The resource is temporarily at another address; repeat the same request there, with the same method and body. | RFC 9110 §15.4.8 | |
| Permanent Redirect | The resource has moved for good; repeat the same request at the new address, with the same method and body. | RFC 9110 §15.4.9 | |
| Bad Request | The server cannot process the request because of a client error, such as malformed syntax or an invalid parameter. | RFC 9110 §15.5.1 | |
| Unauthorized | Authentication is needed: the request has no valid credentials. The WWW-Authenticate header says how to log in. | RFC 9110 §15.5.2 | |
| Payment Required | Reserved for future use. Some services use it for an unpaid account or an exhausted quota, without a standard meaning. | RFC 9110 §15.5.3 | |
| Forbidden | The server understood the request but refuses it. Logging in again will not help; the client lacks permission. | RFC 9110 §15.5.4 | |
| Not Found | The server has nothing at this address, or will not say whether it does. The most common error on the web. | RFC 9110 §15.5.5 | |
| Method Not Allowed | The method (such as POST or DELETE) is not allowed for this resource. The Allow header lists the methods that are. | RFC 9110 §15.5.6 | |
| Not Acceptable | The server has no version that matches the client's Accept headers (format, language or encoding). | RFC 9110 §15.5.7 | |
| Proxy Authentication Required | Like 401, but the proxy between the client and the server wants authentication (Proxy-Authenticate). | RFC 9110 §15.5.8 | |
| Request Timeout | The server gave up waiting for the client to finish sending its request, and closes the connection. | RFC 9110 §15.5.9 | |
| Conflict | The request conflicts with the current state of the resource, such as an edit to an outdated version. | RFC 9110 §15.5.10 | |
| Gone | The resource has been removed on purpose and will not come back. Stronger than 404: search engines drop it sooner. | RFC 9110 §15.5.11 | |
| Length Required | The server needs a Content-Length header to accept the request body. | RFC 9110 §15.5.12 | |
| Precondition Failed | A condition in the request headers (such as If-Match) is false, so the server did not apply the change. | RFC 9110 §15.5.13 | |
| Content Too Large | The request body is larger than the server will accept, such as an upload over its size limit. Formerly Payload Too Large. | RFC 9110 §15.5.14 | |
| URI Too Long | The address is longer than the server will process, often a sign of a redirect loop or too much data in the query. | RFC 9110 §15.5.15 | |
| Unsupported Media Type | The server does not accept the format of the request body (its Content-Type), for example XML where JSON is expected. | RFC 9110 §15.5.16 | |
| Range Not Satisfiable | The range asked for in the Range header lies outside the file, for example past its end. | RFC 9110 §15.5.17 | |
| Expectation Failed | The server cannot meet the requirement in the request's Expect header. | RFC 9110 §15.5.18 | |
| I'm a teapot | Reserved and unused in HTTP. Known from the 1998 April Fools' coffee pot protocol as I'm a teapot; some servers still answer with it in jest. | RFC 9110 §15.5.19 | |
| Misdirected Request | The request reached a server that is not set up to answer for this host name, for example on a reused connection. | RFC 9110 §15.5.20 | |
| Unprocessable Content | The request is well formed, but its content fails validation, such as a missing required field. Formerly Unprocessable Entity. | RFC 9110 §15.5.21 | |
| Locked | A WebDAV resource is locked and cannot be changed now. | RFC 4918 | |
| Failed Dependency | A WebDAV action failed because another action it depended on failed. | RFC 4918 | |
| Too Early | The server will not process a request sent as TLS early data, because a replay could do harm. | RFC 8470 | |
| Upgrade Required | The server refuses the request over the current protocol and names the one to switch to in the Upgrade header. | RFC 9110 §15.5.22 | |
| Precondition Required | The server requires a conditional request (such as If-Match) to prevent lost updates. | RFC 6585 | |
| Too Many Requests | The client sent too many requests in a given time (rate limiting). Retry-After may say when to try again. | RFC 6585 | |
| Request Header Fields Too Large | The request headers, one or all of them together, are too large, often because of too many or too big cookies. | RFC 6585 | |
| Unavailable For Legal Reasons | The resource is unavailable because of a legal demand, such as a court order or a government block. | RFC 7725 | |
| Internal Server Error | Something went wrong on the server and it has no more specific code to give. The fault is not in the request. | RFC 9110 §15.6.1 | |
| Not Implemented | The server does not support the functionality the request needs, such as an unknown method. | RFC 9110 §15.6.2 | |
| Bad Gateway | A gateway or proxy got an invalid answer from the server behind it. | RFC 9110 §15.6.3 | |
| Service Unavailable | The server cannot handle the request right now, because of overload or maintenance. Retry-After may say when to try again. | RFC 9110 §15.6.4 | |
| Gateway Timeout | A gateway or proxy did not get an answer in time from the server behind it. | RFC 9110 §15.6.5 | |
| HTTP Version Not Supported | The server does not support the HTTP version used in the request. | RFC 9110 §15.6.6 | |
| Variant Also Negotiates | A configuration error in transparent content negotiation: the chosen variant is itself set to negotiate. | RFC 2295 |
Checked 21 October 2026
Look up any HTTP status code: what 200, 301, 404, 429 or 503 means, when a server sends it, whether caches keep it and which RFC defines it.
How to use
- Type a status code such as 404, a class such as 5xx, or words such as redirect or rate limit.
- Pick a class to see only its codes.
- Select a row to see its meaning, whether caches keep it and the RFC that defines it.
How it works
Every answer a web server sends starts with a three-digit status code that says how the request went. The first digit gives the class: 1xx informational (the request goes on), 2xx success, 3xx redirection, 4xx a problem with the request and 5xx a failure on the server. The words after the code, such as Not Found, are the reason phrase; programs act on the number, never on the words.
The codes are defined in RFC 9110, HTTP Semantics, and in a few other RFCs, and IANA keeps the official registry of every assigned code. A client that gets a code it does not know treats it as the x00 code of its class: an unknown 437 counts as a 400. Some codes may be stored by caches without any explicit cache headers (RFC 9110 calls them heuristically cacheable): 200, 203, 204, 206, 300, 301, 308, 404, 405, 410, 414 and 501.
Example: a page that has moved for good answers 301 or 308 with the new address in the Location header, and browsers and search engines then use the new address. 308 also keeps the method, so a form POST is repeated as a POST, while after a 301 browsers may switch to GET.
The table follows the IANA registry and is refreshed from it. Codes that single vendors use without registering them, such as 499 from nginx or 520 from Cloudflare, are not listed.
Sponsored Links
Frequently asked questions
What does HTTP 404 mean?
Not Found: the server has nothing at that address, or will not say whether it does. Check the address for typos; the page may have moved or been removed.
What is the difference between 401 and 403?
401 means you are not authenticated: log in or send valid credentials. 403 means the server knows who you are, or does not care, and still refuses: you lack permission.
What is the difference between 301, 302, 307 and 308?
301 and 308 are permanent moves, 302 and 307 temporary ones. 307 and 308 require the client to repeat the same method and body; after 301 or 302 browsers may change a POST into a GET.
What does 500 Internal Server Error mean?
Something failed on the server, and it has no more precise code to give. The request itself is usually fine; the fault is in the site's software or setup.
What is the difference between 502, 503 and 504?
502 means a proxy or gateway got an invalid answer from the server behind it, 504 that it got no answer in time. 503 means the server itself is overloaded or down for maintenance.
What does 429 Too Many Requests mean?
You sent too many requests in a short time and the server is limiting the rate. Wait and try again; a Retry-After header may say how long.
Is 418 I'm a teapot a real status code?
It started as an April Fools' joke in 1998 (the coffee pot protocol). RFC 9110 reserves 418 as unused, so it has no meaning in HTTP, although some servers still send it in jest.
Next you might need
- Download time calculatorEnter the file size and your connection speed to see how long a download or upload takes., private, runs on your deviceWeb & developerCalculatorNetworks
- What is my IP?Your public IP and the network behind it., private, runs on your deviceWeb & developerCheckerNetworks
- WHOIS lookupFind the registrar, dates and name servers reported by WHOIS., private, runs on your deviceWeb & developerCheckerNetworks
- Country codesISO 3166 alpha-2, alpha-3 and numeric codes, calling codes and domains of 249 countries and territories., private, runs on your deviceEverydayReferenceNetworks
- Wi-Fi cardA printable card with a QR code that joins your Wi-Fi when guests scan it with a phone camera., private, runs on your devicePrintablesGeneratorNetworksEncoding
- Color converterPick or type any color and copy it as HEX, RGB, HSL, HWB or OKLCH, with its nearest CSS name., private, runs on your deviceWeb & developerConverterColour
More in Web & developer
All 18 utilities in Web & developer- Password generatorA random password made on your device, with its strength in bits and nothing sent anywhere., private, runs on your device
- Browser infoBrowser, engine and device facts, reported here., private, runs on your device
- Color contrast checkerCheck the WCAG contrast of text on a background, see which levels it passes, and get a nearby color that does., private, runs on your device
- Hash generatorSHA-256, SHA-512, SHA-1 and MD5 hashes of any text, made in your browser., private, runs on your device
- JSON formatterPaste JSON to find errors, tidy it up or make it compact., private, runs on your device
- URL encode and decodePercent-encode text for a web address, or decode %20 and friends back to plain text., private, runs on your device
Popular now
Sponsored Links
Sponsored Links
Sponsored Links