Free tool

HTTP Status Checker

The status code, every redirect, the timings, the certificate and the headers for any URL - and a straight answer to whether an uptime monitor would call it up or down.

Headers, body, auth and expected codes

One per line, Name: value. Sent only to the host you typed - not to a host a redirect points to.

Comma-separated, e.g. 200, 204 or 401 for an endpoint that should refuse you.

Up or down: how a monitor decides

The verdict above follows the same rules UpWatchr applies on every check, so what you see here is what a monitor would report:

  • Any 2xx is up, everything else is down - unless you list expected status codes, and then only those count. A login-protected endpoint that should answer 401 is healthy when it does.
  • Redirects are followed and the last answer decides. Turn following off and a 301 counts as down unless you expect it.
  • A certificate that fails validation is down, even if the page behind it answers 200. Browsers refuse it, so your visitors are already locked out.
  • No answer within the timeout is down. So is a refused connection, a failed DNS lookup or a broken TLS handshake.

What the status codes mean

CodeMeaningUsually
200, 204OK, No ContentWorking. 204 is a normal answer from health endpoints and APIs.
301, 308Moved permanentlyUpdate links to the new address; 308 keeps the method (a POST stays a POST).
302, 307Temporary redirectOften a login page. If a health check lands on one, it's checking the login page, not the app.
401, 403Unauthorized, ForbiddenMissing or wrong credentials - or a firewall or bot protection turning away a server it doesn't know.
404Not FoundWrong path, or a deploy that dropped the route.
429Too Many RequestsRate limited. Check less often, or ask for an allowlist.
500Internal Server ErrorThe app crashed on this request. The server's own logs say why.
502Bad GatewayThe proxy in front (Nginx, IIS ARR, Cloudflare, a load balancer) got no valid answer from the app behind it - often an app that's stopped or restarting.
503Service UnavailableOverloaded, in maintenance, or an IIS application pool that has stopped.
504Gateway TimeoutThe app behind the proxy answered too slowly. A slow database query is a common cause.
520-526Cloudflare errorsCloudflare reached your origin and something went wrong: down (521), timed out (522, 524) or a TLS problem (525, 526).

Reading the timings

DNS is looking up the name, Connect is the TCP handshake, and TLS + server is the encryption handshake plus the time the server took to start answering. Together they make the time to first byte (TTFB). Download is the rest of the response (counted up to 1 MB). A slow TTFB with a fast connect points at the application, not the network.

Works in your browser, fails here (or the reverse)

  • Bot protection or a WAF often answers servers with a 403 or a challenge page while letting browsers through. This checker identifies itself as UpWatchr-HTTP-Checker/1.0, so you can recognise or allowlist it.
  • Geo-blocking: the check comes from the Netherlands.
  • Private addresses - localhost, 192.168.x.x, an intranet name - can't be checked from the internet at all. That's exactly what a monitor on your own machine is for.

Common questions

Why doesn't it show the response body?

It reads and counts the body to time the download, but doesn't show it - so it can't be used to fetch pages anonymously through us. The status, headers and timings are what a monitor works from anyway.

Are my headers and password stored?

No. They're used for this one request and then discarded, and they're only sent to the host you typed - if the site redirects to another host, they're left off, the way browsers drop credentials.

How do I get alerted when it goes down?

Run the same check on a schedule. UpWatchr is a free Windows app that does exactly that, per site, with the same method, headers, auth and expected codes - and alerts you by popup, email, Telegram, webhook or a script of your own. It also reaches what this page can't: servers on your LAN and localhost.