A proxy, specifically a proxy server, performs intermediary tasks between a requesting computer and another computer from which the services are being accessed. It can be a dedicated computer or software which catches the requests to the source server, caches the data, and returns the information to the client computer. A proxy can be used to improve access performance, filter requests, or hide the identity of the requesting party.
Data Caching to Improve Performance
The most common application for proxies is web caching. A web proxy caches the information gathered from individual requests and stores that data for a certain amount of time. When a computer requests a web page or certain files that have been cached, the proxy server just returns the requested data immediately instead of getting them again from the source server, thereby significantly reducing access times.
If the data is not available on the cache, the proxy server fetches it from the source server, saves a copy on its cache, and returns it to the requesting client. Web proxies use algorithms to determine how long cached data should be kept before purging them.
Web Filtering to Enhance Security or Improve User Experience
Another common use for a proxy server is web filtering and this application is usually seen in corporate networks. A web filtering proxy can prevent users from accessing sites and services that it deems as not secure or inappropriate for the corporate environment. These can be sites that contain malicious code and even viruses which can wreak havoc on a computer and risk the security of the whole infrastructure or a site with censored and offensive content. Other web filters can reformat pages from the site for better viewing on mobile phones, or for printing.