When you ask UpOrNot to check a website, it does roughly what your browser does when you open a page — but it stops as soon as it knows whether the server answered, and it explains the answer in plain language. Here is what happens behind the button.
Step 1 — DNS resolution: finding the server
Computers talk to each other with numeric addresses (like 93.184.215.14), not names. The Domain Name System (DNS) is the internet's phone book: it turns example.com into the address of the server that hosts it.
- If the name has no record at all, the website effectively doesn't exist (or its domain expired).
- If the DNS servers don't answer, we can't tell yet — that's a temporary or configuration problem.
- If the name points to a private or internal address, we refuse to go further. More on that below.
Step 2 — Connection attempts
Next, the checker opens a connection to the server, normally a secure HTTPS connection on port 443. Several things can go wrong here: the server may refuse the connection, not answer within a few seconds, or present an invalid security certificate. If HTTPS fails and you didn't type a scheme, we also try plain HTTP on port 80.
Step 3 — Reading the HTTP status code
Once connected, the checker asks for the page and reads the three-digit HTTP status code at the top of the server's reply. It's the quickest summary of what happened:
- 200OKThe page was delivered normally. The website is online.
- 301 / 302RedirectThe page lives at another address. We follow up to 5 redirects and show where you end up.
- 401 / 403RestrictedThe server answered but refuses access — often a login wall or bot protection. The site is reachable.
- 404Not foundThe server is online, but this specific page doesn't exist.
- 429Too many requestsThe server is rate-limiting automated visitors. It's up, just protective.
- 500Server errorThe server crashed or hit a bug while building the page.
- 502 / 503 / 504Gateway or overloadA proxy or the server itself is overloaded, in maintenance, or can't reach its backend.
Step 4 — Turning codes into a clear verdict
| What we observe | What we tell you |
|---|---|
| 2xx or a valid redirect | This website is online. |
| 404 or 410 | The website is online, but this page was not found. |
| 5xx | The website is reachable, but its server returned an error. |
| 401, 403, 429, CAPTCHA or bot challenge | The website is reachable but does not allow automated checks. |
| Both probes fail to connect | This website appears to be unavailable. |
| Timeout or mixed signals | We could not verify this website right now. |
Why transparent, limited checks matter
A status checker is a tool that makes requests to other people's servers on your behalf. Doing that responsibly means a few firm rules:
- Identify ourselves. Our requests carry a browser-like user agent that also names UpOrNot and links to this page.
- Stay light. One page request per probe, a short timeout, a small read limit and no crawling. That's why checks don't slow sites down or affect their SEO.
- Never bypass protection. If a site shows a CAPTCHA or blocks bots, we report it as protected. We don't try to defeat Cloudflare, logins or other access controls.
- Protect private networks. We only contact public addresses on ports 80 and 443, re-check every redirect, and refuse localhost, private ranges and cloud metadata endpoints. This stops the tool from being abused to scan internal networks (an attack called SSRF).
- Rate-limit usage. Each visitor can run a limited number of checks per minute, which keeps the service fair and prevents abuse.
- Publish only what's safe. The public “Recently checked” list shows domain names only — never paths, query strings or credentials.
Find out in seconds whether a site is down for everyone.