In the computer networks, proxy server is a server that acts as an intercessor for the client requests for resources from other servers. A client connects to the proxy server, requesting some service, such as a file, connection, web page, or other resources available from a different server. The proxy server evaluates the request according to your filtering rules. For example, you can filter traffic by IP address or protocol. If the request is validated by the filter, the proxy provides the resource by connecting to the server and request for service on behalf of the client. A proxy server may optionally alter the client request or server response and sometimes can serve the request without contacting the specified server. In this case, the answers ‘cache’ from the remote server, and returns later requests the same content directly.
A proxy server has a variety of functions, including:
- To maintain the anonymity behind the machines (especially security)
- To speed up access to resources (through caching). Web Proxies are commonly used to cache web pages from a web server
- To implement the policy of access to network services or content, for example, to block unwanted sites.
- To log / audit usage, ie to provide an employee of the company’s Internet usage reports.
- To avoid security checks / parent.
- To analyze the transmitted content for malware before delivery.
- To analyze the output content, for example, for the protection of data leakage.
- To bypass regional restrictions.
- To allow a website to make requests to the externally hosted web resources (eg pictures, music files, etc.) when cross-domain restrictions prohibiting direct website links to external domains.
- A proxy server that passes without change requests and responses is usually called a gateway or sometimes tunneling proxy.
- A proxy server can be placed on the user’s local computer or at various points between the user and the target servers on the Internet.
- A reverse proxy is (usually) an open Internet proxy used as a front-end to control and protect access to a server on a private network, usually also carry out tasks such as load balancing, authentication, decryption or cache.