Proxy Server

There are two kinds of proxy servers; forward proxy and reverse proxy.

Forward Proxy

A forward proxy is also known as proxy server or web proxy.
Proxy servers are located in front of clients and provides managed access to outside of the internal network.
In a typical scenerio;
  • A client wants to access a website on the internet and makes a request over proxy.
  • Why doesnot the client access directly ? Because the client is prevented direct connection to the internet for security concerns.
  • The proxy executes some logic on the request decides whether to forward or not.
  • The proxy forwards the request to where it's routed.
  • The server to which the request is sent does not know about the client, it knows the proxy as the sender.
  • The server responds back to the proxy.
  • And the proxy route the response to the client.
Use cases
  • Enforcing security policies on clients in the internal network.
  • Blocking access to certain websites.
  • A blocked-ip-ranged client for a website can use a forward proxy to hide its real ip and access the website over a nonblocked-ip-ranged proxy.
  • Before the integration of NAT into the routers, multiple computers in an internal network can access the internet via proxy servers.
  • Forward proxy server can be used as cache server for the purpose of preventing download of the same items multiple times.

Reverse Proxy

A reverse proxy server is located just behind the firewall in an internal network and directs the incoming requests to the servers.

Use cases 
  • Load balancing to route the traffic accross the servers.
  • Security concerns at one point; 
    • It would be enough to install SSL certificate only on the reverse proxy.
    • One public IP address would be enough for the servers to be accessed from outside the internal network.
  • A reverse proxy can also be used to cache content.



Java EE Technology Stack

Dependency Injection In Java and CDI