HTTP Explorer
What does your browser actually say to a website?
Loading the simulation…
What does your browser actually say to a website?
Loading the simulation…
One request and one response over cleartext HTTP/1.1, shown as the literal bytes: the request-line, the field lines, the blank line that ends them, and the body.
1 step. Pause, step back or replay any of them.
Nothing selected
Click anything on the map (a device, a cable, or a moving message) to see what it is.
Not sent yet — this is the first exchange of the run, shown so there is something to read. Press play, or pick an exchange from the ledger above.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>example.com</title>
</head>
<body>
<h1>It works</h1>
<p>You are looking at 512 bytes that crossed a network as text.</p>
</body>
</html>
Click or tab to any field line in the message beside this one and it will explain itself here — what it does, who put it there, and where it is defined. 35 fields are catalogued.
Nothing has been asked for yet. Press play.
Private, holding one person’s responses. Ignores s-maxage entirely, and stores private responses happily.
This run has no shared cache in the path, so the browser talks straight to the origin and pays the whole round trip itself.
Empty. A fresh browser profile — nothing has asked the browser to remember anything yet.
A dot marks a code that is heuristically cacheable — reusable by a cache with no explicit freshness information at all. 301 has one and 302 does not, which is why a permanent redirect set by mistake is remembered long after it is taken back. The reason-phrase under each number is advisory and no client may branch on it (RFC 9112 §4); the number is the whole of the message.