In computer networks, a proxy server is a server (a computer system or an application) that acts as an intermediary for requests from clients seeking resources from other servers. A client connects to the proxy server, requesting some service, such as a file, connection, web page, or other resource available from a different server and the proxy server evaluates the request as a way to simplify and control its complexity. Proxies were invented to add structure and encapsulation to distributed systems. Today, most proxies are web proxies, facilitating access to content on the World Wide Web and providing anonymity.
There are 3 main types of proxy’s: Forward proxy, open, and reverse proxy. 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. 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. 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 get a large number of hits maintain a reverse proxy to enhance the performance of their servers. It’s 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.