The exchange of information in Internet takes place through the “client – server” model. A client sends a request (what files it needs) and a server sends a reply (required files). For close cooperation (full understanding) between a client and a server the client sends additional information about itself: the version and name of operating system, configuration of browser (including its name and version) etc. This information can be necessary for the server in order to direct the client to appropriate web-page. There are different variants of web-pages for different configurations of browsers. However, as long as web-pages do not depend on browsers, it makes sense to hide this information from the web-server.

What your browser transmits to a web-server?
1. The name and version of operating system.
2. The name and version of browser.
3. Configuration of the browser (display resolution, color depth, java / javascript support, …)
4. IP-address of client
Other informations
The most important part of such information (and of no use for a web-server) is information about IP-address. Using your IP it is possible to know about you the following:
1. The country where you are from
2. The city
3. Your internet service provider’s name and e-mail
4. Your physical address
Information, transmitted by a client to a server is accessible for a server as environment variables. Every information unit is a value of some variable. If any information unit is not transmitted, then corresponding variable will be empty (its value will be undetermined).
These are some environment variables:
REMOTE_ADDR ? IP address of a client
HTTP_VIA ? If it is not empty, then a proxy is used. Value is an address (or several addresses) of a proxy server, this variable is added by a proxy server itself if you use one.
HTTP_X_FORWARDED_FOR ? If it is not empty, then a proxy is used. Value is a real IP address of a client (your IP), this variable is also added by a proxy server if you use one.
HTTP_ACCEPT_LANGUAGE ? What language is used in browser (what language a page should be displayed in)
HTTP_USER_AGENT ? Browser’s name and version (e.g. MSIE 5.5) and the operating system (e.g. Windows 98) is also mentioned here.
HTTP_HOST ? is the web server’s name
This is a small part of environment variables. In fact there are much more of them (DOCUMENT_ROOT, HTTP_ACCEPT_ENCODING, HTTP_CACHE_CONTROL, HTTP_CONNECTION, SERVER_ADDR, SERVER_SOFTWARE, SERVER_PROTOCOL, …). Their quantity can depend on settings of both a server and client.
These are examples of variable values:
REMOTE_ADDR = 194.85.1.1
HTTP_ACCEPT_LANGUAGE = ru
HTTP_USER_AGENT = Mozilla/4.0 (compatible; MSIE 5.0; Windows 98)
HTTP_HOST = www.webserver.ru
HTTP_VIA = 194.85.1.1 (Squid/2.4.STABLE7)
HTTP_X_FORWARDED_FOR = 194.115.5.5
Anonymity at work in Internet is determined by what environment variables “hide” from a web-server.
If a proxy server is not used, then environment variables look in the following way:
REMOTE_ADDR = your IP
HTTP_VIA = not determined
HTTP_X_FORWARDED_FOR = not determined
According to how environment variables are “hiden” by proxy servers, there are several types of proxies.
Transparent Proxies:
They do not hide information about your IP address:
REMOTE_ADDR = proxy IP
HTTP_VIA = proxy IP
HTTP_X_FORWARDED_FOR = your IP
The function of such proxy servers is not the improvement of your anonymity in Internet. Their purpose is information cashing, organization of joint access to Internet of several computers, etc.
Anonymous Proxies:
All proxy servers, that hide a client’s IP address in any way are called anonymous proxies
Simple Anonymous Proxies:
These proxy servers do not hide a fact that a proxy is used, however they replace your IP with its own:
REMOTE_ADDR = proxy IP
HTTP_VIA = proxy IP
HTTP_X_FORWARDED_FOR = proxy IP
These proxies are the most widespread among other anonymous proxy servers.
Distorting Proxies:
As well as simple anonymous proxy servers these proxies do not hide the fact that a proxy server is used. However a client’s IP address (your IP address) is replaced with another (random) IP address:
REMOTE_ADDR = proxy IP
HTTP_VIA = proxy IP
HTTP_X_FORWARDED_FOR = random IP address
High Anonymity Proxies:
These proxy servers are also called “high anonymity proxy”. In contrast to other types of anonymity proxy servers they hide a fact of using a proxy:
REMOTE_ADDR = proxy IP
HTTP_VIA = not determined
HTTP_X_FORWARDED_FOR = not determined
That means that values of variables are the same as if proxy is not used, with the exception of one very important thing, proxy IP is used instead of your IP address.
Summary
Depending on purposes there are transparent and anonymity proxies. However, remember, using proxy servers you hide only your IP from a web-server, but other information (about browser configuration) is accessible!
You can also check the following posts :
- How to set up proxy server in Windows
- Top free VPN Services
- How to setup OpenDNS and Google DNS
- How to stop google recording your search history
- How to delete Skype chat/call history



I found a site that allows me to access myspace or facebook from work and school bookfaceoxy.com
Thanks for the added info, is always good to learn. Thanks again
Pretty cool post. I just stumbled upon your blog and wanted to say that I have really liked browsing your blog posts. In any case I’ll be subscribing to your feed and I hope you write again soon!
This is really help full wiki for understanding about proxy server and how it works. Thanks Bishwajeet.
When some one searches for his required thing, thus he/she wishes to be available that in detail, thus that thing is maintained
over here.