# Proxy Server
## What is a Proxy Server
A proxy server is an intermediary server that sits between client devices and the internet or other servers. When a client makes a request, it sends the request to the proxy server instead of directly to the destination server. The proxy server then forwards the request to the destination, receives the response, and returns it to the client. The destination server sees the proxy server's IP address rather than the client's IP address. Proxy servers serve multiple purposes including caching, filtering, anonymity, security, and access control.
## How a Proxy Server Works
When a client is configured to use a proxy server, all its network requests are sent to the proxy rather than directly to the internet. The proxy evaluates the request, applies any configured policies, and forwards the request to the destination. The response from the destination server is received by the proxy which may cache it before returning it to the client. If the same resource is requested again by any client, the proxy can serve the cached copy without making another request to the origin server.
## Types of Proxy Servers
A forward proxy is what most people think of when they hear proxy server. It sits in front of clients and handles their outbound requests to the internet. Organizations use forward proxies to enforce internet usage policies, filter malicious content, and cache frequently accessed content. A reverse proxy sits in front of servers rather than clients. It handles incoming requests from the internet to the organization's servers. Reverse proxies are used for load balancing, SSL termination, caching, and protecting backend servers. A transparent proxy intercepts network traffic without requiring any configuration on client devices. An anonymous proxy hides the client's IP address from destination servers. A high anonymity proxy goes further and makes itself appear as a regular internet user rather than as a proxy.
## Proxy Server Uses
Web filtering uses a proxy to block access to websites that violate acceptable use policies such as social media sites during work hours or malicious websites. Content caching stores frequently accessed content so that repeated requests are served from the local cache rather than fetching the content from the internet again, reducing bandwidth usage and improving response times. Security filtering scans content for malware before delivering it to clients. Load balancing using a reverse proxy distributes incoming requests across multiple backend servers. SSL termination allows the proxy to handle SSL encryption and decryption, reducing the processing burden on backend servers. Access control restricts which clients can access which resources.
## Forward Proxy vs Reverse Proxy
A forward proxy acts on behalf of clients and is used to control and monitor outbound traffic from an organization. A reverse proxy acts on behalf of servers and is used to manage and protect inbound traffic to an organization's services. Clients are aware of a forward proxy but are unaware of a reverse proxy. The distinction is important in network design.Back to Subject