Proxy Anonymity Levels
Most proxy list providers and software applications categorize proxy servers into three categories depending on the level of anonymity that proxy server provides. Usually these categories go from Level 1 to Level 3. Proxies marked as Level 1 indicate the level of highest possible anonymity a proxy could have, and Level 3 indicate the lowest. Some proxy lists label their categories differently, for example, Level 1 proxies are usually called Elite proxies or something even High Anonymous proxies. Level 2 proxies are typically named Anonymous Proxies, and Level 3 proxies are known as Transparent Proxies.
The only way to hide your identity from the target server is to pass your request through an intermediary - a middle-man - who will make the request on behalf of you and forward it back to you. This is the basic concept of a proxy server. When a client is using a proxy, all of his requests are sent to a proxy server(intermediary) instead, who then fetches the requested resource on a client's behalf and returns it back to him. Whether that proxy server forwards additional information to a target server such as identifying itself as a proxy server or revealing client's IP address is what determines the level of anonymity that that proxy has.
Transparent Proxies (Level 3)
Transparent proxies are the type of proxies that forward detailed information about you including your IP address to the target server you are connecting to, thus it provides almost no level of anonymity. Such proxies are also known as caching proxies because their intended purpose is to cache the data that is exchanged between the servers in order to speed up the Internet within the organization.
Transparent proxies are not entirely useless for all purposes, because your IP address is still technically "hidden" from the target server, it's just that it would be very easy for them to find it out. For example, let's pretend you are using a transparent proxy which has an IP address of 184.108.40.206 and your real IP address was 220.127.116.11. In that situation, this is how your request would appear to a target server:
... HTTP_X_PROXY_ID = 1522885065 HTTP_VIA = 1.1 18.104.22.168 (Mikrotik HttpProxy), 1.1 proxy4.wasantara.net.id (squid/3.2.2) HTTP_X_FORWARDED_FOR = 22.214.171.124, 126.96.36.199 HTTP_CONNECTION = keep-alive REMOTE_ADDR = 188.8.131.52 ...
As you can see, the proxy first identifies itself as a Mikrotik HttpProxy by sending an additional HTTP_VIA header the variable REMOTE_ADDR which holds the IP address of a visitor instead shows the IP of a proxy, however it does store your real IP address inside other header variables, in this case it's inside HTTP_X_FORWARDED_FOR.
Anonymous Proxies (Level 2)
Anonymous Proxies or sometimes known as distorting proxies can provide a sufficient level of anonymity and are thus considered to be useful for most purposes. This type of proxy does not reveal your IP address to a server, however the server will know that the connection was made through a proxy because of the additional information that is sent with each request. Anonymous Proxies usually identify themselves by attaching additional headers to each request such as:
HTTP_CLIENT_IP = ... HTTP_X_FORWARDED_FOR = ... HTTP_X_FORWARDED = ... HTTP_X_CLUSTER_CLIENT_IP = ... HTTP_FORWARDED_FOR = ... HTTP_FORWARDED = ...In order for a proxy to be anonymous, none of those headers should contain your real IP address otherwise such proxy isn't considered to be anonymous, and instead it is a transparent proxy.
Elite Proxies (Level 1)
Elite or High Anonymity Proxies are considered to be the best because they provide the absolute highest level of anonymity. When using this type of proxy, the server you are connecting to has no idea that the connection was made through a proxy nor does it know your real IP address.