Imagine this: you set up a single proxy server and visit two different websites through it. The first one cheerfully tells you: your real IP is such-and-such, and you're using a proxy. The second one notices nothing suspicious and treats you like an ordinary visitor. One proxy, one configuration, but two completely different outcomes. Why does that happen? The answer almost always lies in HTTP headers.

Headers are the metadata that browsers, proxies, and servers exchange with one another on every request. Most of them are invisible to the average user, but they're exactly what determines what the target server knows about you and about the chain of nodes your request traveled through. Three headers play the leading roles in this story: Via, X-Forwarded-For, and the modern Forwarded, described in RFC 7239.

In this guide, we'll break the topic down from the fundamentals to the finer points. You'll learn where the Via header comes from, how hop-by-hop headers differ from end-to-end ones, why X-Forwarded-For should never be blindly trusted, and how to properly set up trust on the server side. We'll honestly decode the marketing terms transparent, anonymous, and elite proxies — in terms of concrete headers, not advertising promises. And, most importantly, you'll get ready-made tools to check with your own hands which set of headers actually goes out into the world.

Let's set the boundaries right away. We're talking exclusively about HTTP headers. We won't touch fingerprinting, TLS fingerprints, or automation detection methods — those are separate, vast topics. Here, it's only headers: what sets them, what they reveal, and how to control it all.