In a computer network, a proxy server is any computer system offering a service that acts as an intermediary between the two communicating parties, the client and the server. In the presence of a proxy server, there is no direct communication between the client and the server. Instead, the client connects to the proxy server and sends requests for resources such as a document, web page or a file that resides on a remote server. The proxy server handles this request by fetching the required resources from the remote server and forwarding the same to the client.
How Proxy Server Works?
An illustration of how a proxy server works is shown below:
As shown in the above example, whenever the client connects to a web proxy server and makes a request for the resources (in this case, “Sample.html”) that reside on a remote server (in this case, xyz.com), the proxy server forwards this request to the target server on behalf of the client, so as to fetch the requested resource and deliver it back to the client. An example of client can be a user operated computer that is connected to the Internet.
Types of Proxy Servers and their Uses:
1. Forward Proxies
A forward proxy is the same one described above where the proxy server forwards the client’s request to the target server to establish a communication between the two. Here the client specifies the resources to be fetched and the target server to connect to, so that the forward proxy server acts accordingly. Except for reverse proxy (discussed in the latter part of this article), all other types of proxy servers described in this article falls under forward proxy.
2. Open Proxy
An open proxy is a type of forwarding proxy that is openly available to any Internet user. Most often, an open proxy is used by Internet users to conceal their IP address so that they remain anonymous during their web activity. The following are some of the web proxies that fall under the category of open proxy:
An anonymous proxy is a type of open proxy that conceals IP address of Internet users so that the target server cannot identify the origin of the requesting client. However, an anonymous proxy identifies itself as a proxy server but still manages to maintain the anonymity of the users.
This type of proxy server identifies itself as a proxy, but reveals an incorrect IP address of the client to the target server.
High Anonymity Proxy (Elite Proxy)
An elite proxy provides maximum anonymity as it neither identifies itself as a proxy nor reveals the original IP address of the client. In most cases, users have to pay for this type of proxy as it is seldom available freely on the Internet.
3. Reverse Proxy
Unlike a forwarding proxy where the client knows that it is connecting through a proxy, a reverse proxy appears to the client as an ordinary server. However, when the client requests resources from this server, it forwards those requests to the target server (actual server where the resources reside) so as to fetch back the requested resource and forward the same to the client. Here, the client is given an impression that it is connecting to the actual server, but in reality there exists a reverse proxy residing between the client and the actual server.
Reverse proxies are often used to reduce load on the actual server by load balancing, to enhance security and to cache static content, so that they can be served faster to the client. Often big companies like Google which gets a large number of hits maintain a reverse proxy so as to enhance the performance of their servers. It is not a surprise that whenever you are connecting to google.com, you are only connecting to a reverse proxy that forwards your search queries to the actual servers to return the results back to you.