HTTP Status Checker
Check the status code, response time and readable headers a URL returns, with a curl command and a table of what each HTTP status code means.
What this checker does
It sends one request to the URL you enter and reports the HTTP status code, the time the response took and the response headers your browser is allowed to read. It also gives you a ready-made curl command for the cases where a browser cannot show the answer. Below the tool is a lookup table of the common status codes and what to check for each.
When the browser cannot show the code
For security, a browser only lets a page read a response from another site if that site opts in with CORS headers. Many sites do not. When that happens the tool can still often tell you whether the server answered at all, but not what the status code was. In that case it says so plainly, and the curl command it generates will show the real status from your terminal. Requests to plain http:// addresses from this secure page are blocked by the browser, so use the https address or curl for those.
How to read the result
Codes starting with 2 mean success, 3 mean the URL redirects elsewhere, 4 mean the request itself is at fault, such as a missing page, and 5 mean the server failed. A 200 on a page that looks wrong can still be a problem, and a chain of several redirects slows a page down, so link straight to the final address. After a domain change, confirm the old URLs return a 301 to the new ones. If a site will not load at all, look at its records with the DNS Lookup Tool.
Status code reference
100 | Continue The server received the request headers and the client should send the body. Rarely seen directly. |
101 | Switching Protocols The server agrees to switch protocol, for example to WebSocket. Check the Upgrade header. |
200 | OK The request succeeded. Nothing to fix. |
201 | Created The request succeeded and created a new resource. Common after a POST. |
202 | Accepted The request was accepted but is not finished yet. Used for queued jobs. |
204 | No Content Success with no body to return. Normal for deletes and some APIs. |
206 | Partial Content Only part of the resource was sent, as requested with a Range header. Used for video and resumable downloads. |
301 | Moved Permanently The URL has permanently moved to a new address. Update links; search engines pass ranking to the new URL. |
302 | Found A temporary redirect to another URL. Search engines keep the original URL indexed. |
303 | See Other Fetch the result from another URL with GET. Common after a form post. |
304 | Not Modified Your cached copy is still current. Normal when caching works. |
307 | Temporary Redirect A temporary redirect that keeps the same method. Like 302 but strict about POST. |
308 | Permanent Redirect A permanent redirect that keeps the same method. Like 301 but strict about POST. |
400 | Bad Request The server could not understand the request. Check the URL, headers and body. |
401 | Unauthorized Authentication is required or has failed. Check credentials or the token. |
403 | Forbidden The server understood the request but refuses it. Check permissions, IP rules and firewalls. |
404 | Not Found Nothing exists at this URL. Check the path, or add a redirect. |
405 | Method Not Allowed The URL does not support this HTTP method. Check the Allow header. |
408 | Request Timeout The server gave up waiting for the request. Often a slow client connection. |
409 | Conflict The request clashes with the current state of the resource. Common with edits and duplicates. |
410 | Gone The resource was removed on purpose and will not return. Search engines drop it faster than a 404. |
418 | I'm a teapot A joke status from an April Fools' RFC. Occasionally used as an easter egg. |
422 | Unprocessable Content The request was well formed but failed validation. Read the error body for the field. |
429 | Too Many Requests You are being rate limited. Slow down and check the Retry-After header. |
500 | Internal Server Error The server hit an unexpected error. Check the server logs. |
501 | Not Implemented The server does not support the requested feature. Check the method or endpoint. |
502 | Bad Gateway A gateway or proxy got a bad answer from the upstream server. Check the app behind the proxy. |
503 | Service Unavailable The server is overloaded or down for maintenance. Often temporary; check Retry-After. |
504 | Gateway Timeout A gateway or proxy timed out waiting for the upstream server. Check slow back-end calls. |
Frequently asked
Why does the tool sometimes say it cannot read the status code?
Browsers block a page from reading a response from another site unless that site sends CORS headers allowing it. The tool shows what it can, and gives a curl command that will show the real status code.
What is the difference between a 301 and a 302 redirect?
A 301 is permanent, so browsers and search engines move to the new URL for good. A 302 is temporary, so the original URL stays in place. Use 301 for moved pages and 302 for short-term detours.
What does a 404 mean and how is it different from a 410?
A 404 means nothing was found at that URL, which may be temporary or a mistake. A 410 says the page was removed on purpose and is not coming back. Search engines tend to drop a 410 page sooner.
What causes a 502 or 504 error?
Both come from a gateway or proxy in front of your app. A 502 means the app sent a bad or empty answer, and a 504 means it took too long. Check that the app is running and look for slow database or API calls.
Is the URL I enter sent to Curious Assistant?
No. The request goes from your browser straight to the site you enter. Curious Assistant does not receive the URL or the response.