This principle as the name implies , works in the client server architecture. In computer networks, a proxy server is a server (a computer system or an application program) which services the requests of its clients by making requests to other servers. A client connects to the proxy server, requesting a file, connection, web page, or other resource available from a different server. A proxy server provides the resource by connecting to the specified server, with some exceptions: A proxy server may alter the client’s request or the server’s response. A proxy server may service the request without contacting the specified server.
A proxy server can be placed in the user’s local computer or at specific key points between the user and the destination servers or the Internet
The various types of Proxy servers are:
Caching proxy server
A proxy server may service requests without contacting the specified server, by retrieving content saved from a previous request, made by the same client or even other clients. This is called caching. Caching proxies keep local copies of frequently requested resources, allowing large organizations and Internet Service Providers to significantly reduce their upstream bandwidth usage and cost, while significantly increasing performance.
There are well-defined rules for caching. Some poorly-implemented caching proxies have had downsides, e.g. an inability to use user authentication. Some problems are described in RFC 3143 (Known HTTP Proxy/Caching Problems).
Proxies that focus on WWW traffic are called web proxies. Many web proxies attempt to block offensive web content. Other web proxies reformat web pages for a specific purpose or audience (e.g., cell phones and PDAs or persons with disabilities). Network operators can also deploy proxies to intercept computer viruses and other hostile content served from remote web pages. (For example, Microsoft Internet Security and Acceleration Server.)
Access control: Some proxy servers implement a logon requirement. In large organizations, authorized users must log on to gain access to the WWW. The organization can thus track usage to individuals.
Anonymizing proxy server
A proxy server that removes identifying information from the client’s requests for the purpose of anonymity is called an anonymizing proxy server or anonymizer.
Intercepting proxy server
An intercepting proxy (often incorrectly called “transparent proxy”) combines a proxy server with a Gateway. Connections made by client browsers through the gateway are redirected through the proxy without client-side configuration (or often knowledge).
Intercepting proxies are commonly used in businesses to prevent avoidance of acceptable use policy, and to ease administrative burden, since no client browser configuration is required.
It is often possible to detect the use of an intercepting proxy server by comparing the external IP address to the address seen by an external web server, or by examining the HTTP headers on the server side.
Transparent and non-transparent proxy server
The term “transparent proxy” is most often used incorrectly to mean “intercepting proxy” (because the client does not need to configure a proxy and cannot directly detect that its requests are being proxied).
“A ‘transparent proxy’ is a proxy that does not modify the request or response beyond what is required for proxy authentication and identification.
“A ‘non-transparent proxy’ is a proxy that modifies the request or response in order to provide some added service to the user agent, such as group annotation services, media type transformation, protocol reduction, or anonymity filtering.”
The term “forced proxy” is ambiguous. Examples have it meaning both “intercepting proxy” (because it filters all traffic on the only available gateway to the Internet) and its exact opposite, “non-intercepting proxy” (because the user is forced to configure a proxy in order to access the Internet).
Open proxy server
An open proxy is a proxy server which will accept client connections from any IP address and make connections to any Internet resource. Abuse of open proxies is currently implicated in a significant portion of e-mail spam delivery. Spammers frequently install open proxies on unwitting end users’ operating systems by means of computer viruses designed for this purpose. Internet Relay Chat (IRC) abusers also frequently use open proxies to cloak their identities.
Because proxies might be used for abuse, system administrators have developed a number of ways to refuse service to open proxies. IRC networks such as the Blitzed network automatically test client systems for known types of open proxy. Likewise, an email server may be configured to automatically test e-mail senders for open proxies, using software such as Michael Tokarev’s proxycheck.
Groups of IRC and electronic mail operators run DNSBLs publishing lists of the IP addresses of known open proxies, such as AHBL, CBL, NJABL, and SORBS.
The ethics of automatically testing clients for open proxies are controversial. Some experts, such as Vernon Schryver, consider such testing to be equivalent to an attacker portscanning the client host.  Others consider the client to have solicited the scan by connecting to a server whose terms of service include testing.
Split proxy server
A split proxy is a proxy implemented as two programs installed on two different computers. Since they are effectively two parts of the same program, they can communicate with each other in a more efficient way than they can communicate with a more standard resource or tool such as a website or browser. This is ideal for compressing data over a slow link, such as a wireless or mobile data service and also for reducing the issues regarding high latency links (such as satellite internet) where establishing a TCP connection is time consuming. Taking the example of web browsing, the user’s browser is pointed to a local proxy which then communicates with its other half at some remote location. This remote server fetches the requisite data, repackages it and sends it back to the user’s local proxy, which unpacks the data and presents it to the browser in the standard fashion.
Reverse proxy server
A reverse-proxy is a “backwards” proxy-cache server; it’s a proxy server that, rather than allowing internal users to access the Internet, lets Internet users indirectly access certain internal servers.
The reverse-proxy server is used as an intermediary by Internet users who want to access an internal website, by sending it requests indirectly. With a reverse-proxy, the web server is protected from direct outside attacks, which increases the internal network’s strength. What’s more, a reverse-proxy’s cache function can lower the workload if the server it is assigned to, and for this reason is sometimes called a server accelerator.
Finally, with perfected algorithms, the reverse-proxy can distribute the workload by redirecting requests to other, similar servers; this process is called load balancing.