
Proxies are often labeled transparent, distorting, anonymous, or elite based on how they handle identifying HTTP headers. This page explains each level, how to test it, and when the labels stop mattering. For broader context across network families, see the proxy services fundamentals.
What “anonymity level” means
Levels describe an HTTP proxy’s header policy for exposing the client or the proxy itself. Fewer added headers usually means a “higher” level.
These labels come from classic HTTP forward proxies and revolve around headers like X-Forwarded-For, Forwarded, and Via. They are not a SOCKS feature and they do not cover non-header signals like TLS or IP reputation.
Quick matrix: header behavior by level
The table shows what headers a target typically sees for each level on plain HTTP.
| Level | X-Forwarded-For (XFF) | Forwarded (RFC 7239) | Via | Other giveaways |
| Transparent | Adds your client IP | Often present | Present | Proxy-branded headers or server banner |
| Distorting | Inserts fake client IP | Optional | Present | XFF inconsistent with real source |
| Anonymous | Removes client IP or sets XFF to proxy IP | Optional | Present | Minimal extras, still shows Via |
| Elite | Absent | Absent | Absent | No obvious proxy headers |
How to test once, then compare results
Run one HTTP and one HTTPS request through your proxy, then compare the HTTP output with the matrix.
# HTTP: headers are visible to the destination
curl -s http://httpbin.org/anything -x http://PROXY:PORT | jq .headers
# HTTPS over CONNECT: proxy-inserted HTTP headers are not visible
curl -s https://httpbin.org/anything -x http://PROXY:PORT | jq .headers
Save both outputs. Use the HTTP result to classify the level. Use the HTTPS result to confirm that CONNECT hides proxy-inserted HTTP headers from the destination.
Transparent proxies
Target sees you and the proxy. Expect X-Forwarded-For: <your_client_ip> and Via.
Suited for benign hops or internal caching where disclosure is acceptable. Not suitable when the goal is to appear like a direct client. See Transparent Proxies for configuration and pitfalls.
Distorting proxies
Target sees a proxy and a bogus client IP. Expect X-Forwarded-For with a fake address plus Via.
This defeats naive “log XFF” checks but still marks the request as proxy traffic in most systems. See Distorting Proxies for real-world detection issues.
Anonymous proxies
Target does not learn your client IP but still sees a proxy via Via. XFF is absent or set to the proxy IP.
Works where only the client IP matters and proxy markers are not penalized. See Anonymous Proxies for setup examples and checks.
Elite proxies
Target sees no X-Forwarded-For, no Forwarded, and no Via on plain HTTP.
This is the cleanest header profile an HTTP proxy can present. One misconfigured hop in a chain can reintroduce headers, so verify end to end. See Elite Proxies for hardening recipes.
HTTPS CONNECT changes classification
With HTTPS over CONNECT the proxy only tunnels, so the destination cannot see proxy-added HTTP headers.
Under CONNECT all four levels look “header-elite” to the destination. Detection shifts to IP reputation, TLS fingerprints, behavior, and traffic shape rather than HTTP header markers.
SOCKS vs HTTP for these levels
This taxonomy is about HTTP headers. SOCKS does not inject HTTP headers.
When someone says “elite SOCKS,” they usually mean downstream HTTP traffic looks clean and the egress IP has favorable reputation, not a SOCKS-level feature.
Detection beyond headers
Clean headers are necessary but not sufficient. Modern systems combine multiple layers.
Key signals:
- IP ownership and history: announcing ASN, age of prefix, prior abuse
- TLS fingerprints: ClientHello, JA3/JA4 patterns that differ from browsers
- TCP and HTTP behavior: header order, RTT distributions, window sizes, identifier randomness
- Traffic shape: concurrency bursts, synchronized actions across many accounts, timing regularity
Proxy chains and middleboxes
Any intermediate hop can add Via, Forwarded, or X-Forwarded-For and break an elite profile.
Audit every component: client library, local forwarder, enterprise gateway, provider gateway, and upstream balancers. Retest after any change.
Header hardening checklist
Disable reveal headers and stop middleboxes from re-inserting them.
- Block Via, X-Forwarded-For, and Forwarded at the edge unless strictly required.
- If you keep XFF internally, prevent it from leaving your perimeter.
- Align policies across reverse proxies and load balancers that append headers by default.
- Confirm behavior with the two curl calls after each configuration change.
FAQs
Does HTTPS make every proxy elite?
No. CONNECT hides proxy-inserted HTTP headers from the destination, but IP reputation, TLS, and behavior still expose non-human or proxy-like traffic.
Do these levels apply to SOCKS5?
Not directly. SOCKS operates below HTTP. The labels describe HTTP header behavior above the tunnel.
Why do some targets still detect a proxy with clean headers?
They rely on reputation, TLS and TCP fingerprints, and traffic shape rather than HTTP header markers.
What is the clearest indicator of an elite HTTP proxy?
On plain HTTP, the destination receives no X-Forwarded-For, no Forwarded, and no Via. The same cleanliness must persist across every hop.
Can one reverse proxy ruin results?
Yes. Defaults on a CDN or load balancer can append headers and downgrade an elite profile to transparent.
Summary table: levels and practical use
Use this table to align expectations with risk tolerance.
| Level | Header profile | OK for | Avoid when |
| Transparent | Shows client IP and proxy via headers | Internal hops, benign caching | Any task where client IP exposure is unacceptable |
| Distorting | Fake XFF, proxy still revealed | Legacy systems logging XFF only | Targets checking Via or inconsistencies |
| Anonymous | Hides client IP, Via present | When only client IP matters | Targets that score on proxy markers |
| Elite | No proxy or client reveal headers | Minimal header exposure requirements | Limits still apply via reputation and fingerprints |