Back to Blog
Engineering

HTTP Status Codes for Uptime Monitoring & Alerts

A practical engineering guide to HTTP status codes for uptime monitoring: redirects, client errors, 5xx server errors, and how monitoring engines classify each.

A
Alex GutscherSteadyStack Engineering
August 2, 20267 min read

Every uptime alert your monitoring tool fires is really about one of a handful of HTTP status codes. Knowing what each code signifies — and how monitoring engines classify them — makes the difference between chasing phantom bugs and remediating real production outages.


The Five HTTP Status Code Families

HTTP responses fall into five distinct families:

Code RangeFamilyMeaningDefault Poller Action
1xxInformationalRequest received, protocol handshake in progressIgnored
2xxSuccessRequest successfully handled (200, 201, 204)UP
3xxRedirectionClient must follow alternate URL (301, 302, 308)Follow / Warn
4xxClient ErrorBad request or unauthorized access (400, 403, 404)Configurable Down
5xxServer ErrorOrigin server crashed or timed out (500, 502, 503)DOWN

1. 2xx: What "Success" Actually Means

A 200 OK response indicates that the HTTP server returned a payload — but not necessarily that your backend application is healthy:

  • 200 with Broken Body: An error screen returned with a 200 OK status code (a common framework misconfiguration).
  • 200 with Degraded Latency: A 200 response that takes 8,000ms is effectively an outage for users.
  • 204 No Content: Valid response for health probes and webhook receivers.
Tip
Always pair status code checks with Body Keyword Assertions (e.g. asserting {"status":"ok"} in JSON or checking for specific page elements) to catch silent failure modes.

2. 3xx: Redirects and Redirect Loops

A 301 Permanent Redirect or 308 redirect is standard when moving resources or enforcing HTTPS. However, watch for:

  • Redirect Loops (A -> B -> A): Browsers and uptime probes abort after reaching max hops (typically 10).
  • Redirect Chains: Multiple sequential redirects that add hundreds of milliseconds of transit latency.
  • Redirects to 500 Pages: Endpoints redirecting unauthenticated users to a broken login gateway.

3. 4xx: Client Errors That Warrant Investigation

  • 401 Unauthorized / 403 Forbidden: Expired API tokens, broken JWT validation, or WAF rate-limit rules blocking legitimate user traffic.
  • 404 Not Found: Broken routes, missing static assets, or failed CDN origin mappings.
  • 429 Too Many Requests: Upstream rate-limiting kicking in aggressively; represents an availability outage for end users.

4. 5xx: The Codes That Must Trigger Pages

  • 500 Internal Server Error: Application runtime exception, unhandled crash, or database query error.
  • 502 Bad Gateway: Reverse proxy (Nginx, Cloudflare, ALB) unable to connect to the upstream application container.
  • 503 Service Unavailable: Target overloaded, undergoing deployment, or container pool depleted.
  • 504 Gateway Timeout: Upstream service exceeded proxy execution deadline.

SRE Best Practices Checklist

  • Require 2/3 multi-region confirmation on 5xx errors before paging engineers.
  • Configure keyword/body payload assertions for critical API routes.
  • Monitor SSL certificate expiration with at least 30 days of advance notice.
  • Set distinct latency degradation thresholds (e.g. warning at 1,500ms, critical at 5,000ms).
  • Track 429 rate-limit responses to detect unexpected traffic spikes.
Tags
#HTTP status codes#HTTP 500#monitoring alerts#status code monitoring#SRE
A

Alex Gutscher

Author

Core engineer and distributed systems enthusiast at SteadyStack. Building global edge monitoring mesh networks and 4-of-7 quorum incident alert pipelines.

Found this article helpful?
Quorum-Verified Monitoring

Stop 3 AM false alarms with SteadyStack

Get multi-region edge quorum consensus verification, zero false alarms, and custom branded status pages — completely free for up to 50 monitors.