All locations active · 99.99% uptime
Proxy Guide

The HTTP Headers a Proxy Adds

When you send a request through a proxy, the request that reaches the target server is no longer the one you sent. The proxy steps in, alters some headers and often adds new headers. These added headers clearly give away that you are using a proxy — and sometimes your real IP address.

This is precisely the technical basis of the anonymity level concept. In this article we cover which headers are added, what they mean and how to verify your own connection.

Three Main Headers

FIGUREAnatomy of the X-Forwarded-For header
HEADERX-Forwarded-For: 78.180.x.x, 185.93.68.14X-Forwarded-ForThe list of client IPs in the chain, left to right78.180.x.xThe original client — that is, you185.93.68.14The intermediate proxy server

If this header is present and contains your real IP, the proxy falls into the "transparent" class and provides no anonymity.

HeaderStandard?What it carriesEffect on anonymity
X-Forwarded-ForDe facto standardClient IP chainCan expose the real IP
ForwardedRFC 7239for, by, proto, hostCarries the same information in structured form
ViaRFC 9110Name and version of intermediariesDoes not give the IP but reveals the presence of a proxy
X-Real-IPCommon usageA single client IPCan expose the real IP
X-Proxy-ID / Proxy-ConnectionNon-standardTraces of the proxy softwareReveals the presence of a proxy

Anonymity Levels Arise From These Headers

The three levels used in the industry are defined directly by the presence of these headers:

FIGUREAnonymity levels by header behaviour
CLASSIFICATIONWhat the target seesResultTransparentXFF + Via, real IP read…No anonymityAnonymousVia present, no real IPIP hidden, proxy visibleEliteNo proxy headers at allIndistinguishable from a direct connection

Elite level does not mean "undetectable"; it only means that no trace is left at the header level . Other signals such as IP reputation and TLS fingerprint are still present.

Our article covering the levels in a broader frame, proxy anonymity levels explains which level suits which job. To test the level of your own connection our anonymity test tool you can use.

Where Do the Headers Come From?

The one adding these headers is not always the proxy you are using. There can be multiple intermediaries in the chain:

FIGUREThe chain of intermediaries that add headers
CHAINBrowserinitial requestLocal proxycorporate filterProvider gatewayidentity and routingExit IPlast intermediaryCDN / WAFin front of the targetOrigin serverapplicationProxy

Every intermediary can add its own trace. The list of headers reaching the target's application layer is the sum of this entire chain.

Especially if you are working on a corporate network, an intermediary outside your control X-Forwarded-For may be adding it. In that case, even if the proxy you bought is elite, the intermediary at the start of the chain exposes your identity.

How Do You Verify Your Own Connection?

The way to verify is to use an endpoint that reflects exactly how your request looks on the other side. In the industry, such endpoints are called proxy judge ; they echo back every header they receive as plain text.

FIGUREReading the headers the target sees
Terminal01# Go through the proxy and print the headers the other side sees02curl -x http://proxy.example.com:8080 -s https://ornek-judge.example/headers0304# Compare with a direct connection — the difference matters05curl -s https://ornek-judge.example/headers0607# If you only want to see the exit IP08curl -x http://proxy.example.com:8080 -s https://ornek-judge.example/ip

Put the two outputs side by side. Every extra header that appears in the request going through the proxy is the trace you leave behind.

If you do not want to deal with it manually our anonymity test page does this comparison for you and reports the level. To see only your exit IP and its location My IP Address is enough.

The Situation Changes With HTTPS

An important detail: on HTTPS traffic, the proxy cannot touch the body or the headers. In the tunnel established with the CONNECT method, the proxy only carries encrypted bytes; X-Forwarded-For cannot be added — it cannot even see the request.

FIGUREWhat does the proxy see inside an HTTPS tunnel?
TUNNELTCP connectionCONNECT requestTLS sessionHTTP request/responseThe proxy establishes and sees thisTarget domain name and portvisibleEnd-to-end encrypted — the proxycannot read itHeaders and bodyclosed to the proxyThe proxy only gets: target domain name, connection time and byte volume

For this reason, the concern "will a transparent proxy leak my IP" is largely invalid on HTTPS sites — but entirely valid on plain HTTP sites.

But note

Even though the proxy cannot touch the headers, it sees the domain name in the CONNECT line and the SNI field in the TLS handshake. In other words, which site you visit is known by the proxy on HTTPS too. What is encrypted is what you do, not where you go .

Reading It Correctly on the Server Side

The other side of the coin: if you are trying to read the real visitor IP on your own server, these headers are vitally important — but unreliable. X-Forwarded-For can be fabricated by the client.

  • Only trust the value coming from an intermediary you trust. If your reverse proxy writes it itself, the rightmost value is reliable.
  • Read the chain from the right. The rightmost one is the intermediary closest to you and the most trustworthy.
  • Define a list of trusted proxies. In Nginx, set_real_ip_from, and the "trusted proxies" setting in application frameworks, exist for this.
  • Do not base rate limiting and blocking decisions on the raw header; an attacker can write the header however they like.

Header Hygiene and Fingerprinting

Getting rid of proxy headers is not enough on its own. Target sites look at other signals too when classifying requests:

SignalWhat gives it awayHow to manage it
Header orderLibrary signature (requests, curl)Mimic the browser's header order
User-Agent inconsistencyOld version or fake valueUse a real and up-to-date value
Accept-LanguageMismatch with the IP's countrySend a language matching the exit country
TLS fingerprint (JA3)Client libraryA browser engine or a compatible client
IP reputation / ASNDatacenter originResidential or ISP pool

In other words, even an elite proxy is still easily classified if it exits from a datacenter ASN. On this subject our residential proxy and ISP proxy pages explain why the source ASN is decisive.

Summary

X-Forwarded-For, Via and similar headers are the most visible traces a proxy leaves behind, and they form the technical definition of the anonymity level. On plain HTTP traffic they can expose your real IP; on HTTPS the proxy cannot touch these headers. To see your own situation The anonymity test run it, verify your exit IP with My IP Address and check whether you leave traces on the DNS side DNS leak test to check the anonymity level.

Frequently Asked Questions

01Can I remove the X-Forwarded-For header?

You can strip it from your own request, but the proxy may add it back. Whether the header is added is decided by the proxy server's configuration; elite proxies never add it.

02How can anyone tell that I'm using a proxy?

Header traces are the easiest route, but not the only one. An IP whose ASN is a datacenter, TLS fingerprinting, open-port scans and time-zone mismatches are strong signals too.

03If I use an elite proxy, am I completely invisible?

No. Elite only means leaving no trace at the HTTP header level. Your exit IP's reputation, your browser fingerprint and your behavior patterns can still be analyzed.

04If I use HTTPS, is there no header leak?

It's true that the proxy can't touch headers inside a CONNECT tunnel. But it still sees the target domain (via the CONNECT line and the TLS SNI) and can record the size and timing pattern of the traffic.

05How do I safely read the real visitor IP on my own server?

Trust only the value written by a reverse proxy under your control, and read the chain from the right. In Nginx, define trusted sources with set_real_ip_from; never use the raw header value directly.

Related Articles and Pages

NEXT STEP

Strengthen your proxy setup today.

Get started in minutes with a paid plan, or try our free proxy list first.

FREEPROXY.TR

Looking for a free proxy? You're in the right place

A complete proxy platform where you can browse up-to-date free proxy addresses, compare HTTP and SOCKS proxy types, and check your proxy connections with free tools.