A proxy server, also called an "application level gateway" or just a proxy, is an application that gateways data between a client and a server. The proxy server accepts the input that would be sent directly to the server, connects to the server, receives the response, and sends the response back to the client.
The connection to the server is possibly on a different network than the client was on. It is also common to disallow direct connectivity to server, so that there is no potential for exposing internal information.
It is possible for a proxy server to cache answers to certain requests, and issue them directly where appropriate; thus cutting down on the time taken or data transfer requirements to return a response to a user. A proxy server that does this is called a "caching proxy". The most common type of caching proxy server is a WebProxy.