In computer networks, a proxy server acts as an intermediary for queries from internet users seeking resources from other servers. User joins the proxy server, requesting some service, such as a webpage, connection, file or other resources available from other servers and the proxy server estimates the request as a way to control and simplify it’s complexity. Nowadays, most proxy servers facilitate access to the content on the World Wide Web (WWW).
A proxy server has plenty of potential purposes including:
- Keep machines anonymous for security;
- Speed up access to internet content using caching. Web proxies are mostly used to cache web pages from a web server;
- Block the attempt to download the same content multiple times in order to save bandwidth;
- Log and audit Internet usage;
- Scan transferred data for malware before delivery;
- Scan upload data in order to prevent data loss;
- Bypass webpage restrictions at work;
- Access restriction/enhancement;
- Apply access policy to network content or services;
- Access websites filtered or banned by your ISP or government;
- Bypass parental and security controls;
- Allow the website to make requests to externally hosted resources such as music files, images, movie files, etc. when cross-domain restrictions block the website from connecting directly to the outside domains;
- Allow browsers to make network requests to externally hosted content in the name of a website when cross-domain restrictions block the browser from directly accessing the outside domains.
Types of proxy
- A proxy server may operate on the user’s local computer or at various points between destination servers on the Internet and user’s computer;
- A proxy server which passes responses and requests unmodified is usually called a tunneling proxy or a gateway;
- A forward proxy is an Internet-facing proxy which retrieves from a large range of sources, mostly everywhere on the Internet;
- A reverse proxy usually is an Internet-facing proxy that is used as a front-end to protect and control access to a server on a private network, mostly performing tasks such as caching, authentication, load-balancing, or decryption.