A proxy server is an intermediary server that sits between a client requesting a resource and the server providing that resource. Instead of connecting directly to the server that can fulfill a request for a resource such as a file or web page, the client directs the request to the proxy server, which evaluates the request and completes the required network transactions. Proxies were initially designed to add structure and encapsulation to distributed systems. They are used for various purposes such as simplifying or controlling the complexity of a request or providing additional benefits such as load balancing, privacy, or security.