In networking and Internet technology, a proxy is a device or address that acts as a stand-in for a web browser. The proxy is essentially a middle man, allowing the website or server being accessed to send information to the web browser without gaining any information about the user or the browser. A reverse proxy basically performs the same function for the web server. The browser contacts the reverse proxy instead of contacting the server directly, allowing the server to remain anonymous. A reverse proxy generally serves only a restricted set of websites.
Reverse proxies work only because the web browser does not know that the server it is accessing is a proxy. The reverse proxy looks to the browser exactly like an ordinary server. When the reverse proxy receives a request from a browser, it forwards the request to the original server. When it receives the answer, it forwards the information to the browser as though the information had come directly from the reverse proxy. It is as though a person received an email from someone, changed the signature, and then forwarded that email to a third person.
Security is one of the primary functions of a reverse proxy. It can provide encryption using a secure sockets layer, or SSL. An SSL is a computing protocol that ensures the security of data sent via the Internet by sending encrypted data that requires an authentication code to access. This type of security is provided by reverse proxies equipped with special hardware.
Reverse proxies can also handle other security concerns. For example, this type of proxy provides an additional layer of defense for the operating system and the web server. It does not, however, protect against attacks aimed at the web application. These tend to be a more serious threat and must be protected against with more direct means.
Using a reverse proxy can also add to the efficiency of a system. It is able to perform several operations that ensure slow browsers will not slow down the faster ones. The proxy can distribute the service load to several servers, each serving a particular area. This is called load balancing. It can also compress content to speed load time. If a client is particularly slow, the proxy can perform an action called spoon feeding in which the full content requested from the server is broken down into manageable pieces before being passed to the client one by one.