PublicSoftTools
Tools16 min read·PublicSoftTools Team·June 2026

HTTP Status Codes & Redirect Chains: Complete Debugging Guide

Master HTTP status codes, understand redirect chains, inspect response headers, and debug website issues. The free HTTP Status Checker shows the full redirect chain and all response headers for any URL — no signup required.

How HTTP Requests Work

HTTP (HyperText Transfer Protocol) is the protocol underlying every web page load. Designed by Tim Berners-Lee in 1989 and standardized in HTTP/1.1 (RFC 2616, 1999), HTTP defines how clients (browsers, apps, API consumers) and servers communicate. HTTP/2 (2015) and HTTP/3 (2022) added performance improvements but the status code system remained backward-compatible.

When a browser navigates to a URL:

  1. DNS resolution — the domain name is resolved to an IP address
  2. TCP/TLS handshake — a connection is established (TLS adds the HTTPS encryption layer)
  3. HTTP request — the browser sends a GET request with headers
  4. HTTP response — the server replies with a status code, headers, and body
  5. Rendering — the browser parses HTML, requests sub-resources (CSS, JS, images), and renders the page

The status code in step 4 is the most important diagnostic signal. It tells the client in three digits whether the request succeeded, failed, needs further action, or landed at the wrong address.

Complete HTTP Status Code Reference

1xx — Informational

Provisional responses sent before the final response. Rarely seen in browser DevTools but important for HTTP/2 server push and long-polling.

CodeNameMeaning
100ContinueClient should send the request body. Used with Expect: 100-continue
101Switching ProtocolsServer is switching to the protocol specified in Upgrade header (e.g. WebSocket)

2xx — Success

CodeNameMeaning
200OKStandard success. Request succeeded, response body contains the result
201CreatedPOST/PUT succeeded and created a new resource. Location header points to it
202AcceptedRequest accepted for processing, but not yet complete (async jobs)
204No ContentSuccess but no response body (common for DELETE and some PUTs)
206Partial ContentServer fulfilled a Range request — used for video streaming and resumable downloads

3xx — Redirection

CodeNameSEO impactUse when
301Moved PermanentlyPasses ~99% of link equityPermanent URL change, domain migration
302Found (Temporary)No link equity transferTemporary redirect, maintenance pages
304Not ModifiedNot applicableBrowser uses cached version — great for performance
307Temporary RedirectNo equity transferTemporary, but preserves HTTP method (POST stays POST)
308Permanent RedirectSame as 301Permanent, preserves HTTP method (use over 301 for non-GET)

4xx — Client Errors

CodeNameMeaning
400Bad RequestMalformed request syntax, invalid parameters
401UnauthorizedAuthentication required or failed
403ForbiddenAuthenticated but not permitted
404Not FoundResource does not exist at this URL
405Method Not AllowedGET used where only POST accepted (or vice versa)
409ConflictRequest conflicts with current server state (e.g. duplicate unique key)
410GoneResource permanently deleted — stronger than 404 for SEO de-indexing
422Unprocessable EntityRequest understood but validation failed (common in REST APIs)
429Too Many RequestsRate limit exceeded. Check Retry-After header

5xx — Server Errors

CodeNameMeaning
500Internal Server ErrorUnhandled exception. Check server logs
502Bad GatewayUpstream server returned invalid response (common during deploys)
503Service UnavailableServer overloaded or in maintenance. Temporary
504Gateway TimeoutUpstream server took too long to respond

Redirect Chains: What They Are and Why They Matter

A redirect chain occurs when URL A redirects to URL B, which redirects to URL C. Each hop requires a full HTTP round-trip: DNS resolution, TCP connection, TLS handshake, request, response. On a 100ms latency connection, each redirect adds ~100ms of unavoidable delay before the browser can even start loading the actual page.

Example chain

http://example.com        → 301 → https://example.com
https://example.com       → 301 → https://www.example.com
https://www.example.com   → 200 OK (final destination)

Total: 3 HTTP requests, ~600ms added latency at 200ms/hop

Performance impact

Redirect hopsAdded latency (200ms/hop)Impact
00msIdeal
1~200msAcceptable (HTTP → HTTPS)
2~400msNoticeable on slow connections
3+600ms+Poor UX; investigate and consolidate

SEO implications

Google passes PageRank (link equity) through 301 and 308 redirects, but each hop in a chain slightly degrades the equity transfer. More practically: Googlebot has a finite crawl budget. Long redirect chains waste crawl budget on intermediate URLs that provide no value, reducing the number of real pages crawled per day. This directly impacts how quickly new content gets indexed.

Use 301 (not 302) for permanent moves to pass equity. Fix multi-hop chains by configuring your server to redirect directly from the original URL to the final destination.

Key Response Headers

HeaderExamplePurpose
Content-Typetext/html; charset=utf-8How browser should interpret the body
Cache-Controlmax-age=3600, publicCaching policy — how long and by whom
ETag"abc123def"Version fingerprint for conditional GET requests
Strict-Transport-Securitymax-age=31536000Force HTTPS for future requests (HSTS)
Content-Security-Policydefault-src 'self'Whitelist for scripts and resources (XSS prevention)
X-Frame-OptionsDENYPrevent page from being embedded in iframes (clickjacking)
Access-Control-Allow-Originhttps://app.example.comCORS — which origins may access this resource
VaryAccept-Encoding, Accept-LanguageWhich request headers affect the cached response

Using the HTTP Status Checker

  1. Open the HTTP Status Checker
  2. Paste any URL (with or without https://)
  3. Click Check Status
  4. The tool shows the full redirect chain with status codes at each hop, final status, response time, and all response headers
  5. For batch checking, switch to Batch mode and paste multiple URLs (one per line)

Check HTTP Status Codes Free Online

Full redirect chain, response headers, batch URL checking — no signup required.

Open HTTP Status Checker