Published Jul 10, 2022
[
 
]
A proxy server is an intermediate piece of software or hardware that sits between the client and the server. Clients connect to a proxy to make a request for a service like a web page, file, or connection from the server. Essentially, a proxy server (aka the forward proxy) is a piece of software or hardware that facilitates the request for resources from other servers on behalf of clients, thus anonymizing the client from the server.
Typically, forward proxies are used to cache data, filter requests, log request, or transform requests (by adding/removing headers, encrypting/decrypting, or compressing a resource)
A forward proxy can hide the identify of the client from the server by sending requests on behalf of the client.
In addition to coordinating requests from multiple servers, proxies can also optimize request traffic from a system-wide perspective. Proxies can combine the same data access requests into one request and then return the result to the user; this technique is called collapsed forwarding. Consider a request for the same data across several nodes, but the data is not in the cache. By routing these requests through the proxy, they can be consolidated into one so that we will only read from the disk once.
A reverse proxy retrieves resources from one or more servers on behalf of a client. These resources are then returned to the client, appearing as if they originated from the proxy server itself, thus anonymizing the server.