Caching, on the other hand, is entirely driven by client demand. A Web cache keeps copies of objects which have been downloaded through it. If a future request can be found in the cache, there will be no need to connect to the source server again. The goals of Web caching are to improve response time for users, and to reduce wide-area Internet bandwidth usage. In general, the overall throughput of an Internet connection is related to the number of hops on the path.
More hops usually means a slower connection.
However, in countries where bandwidth is very expensive, or billed on a per-byte basis, the incentive is very high. Fortunately, Web caching has been easy to implement because the designers of HTTP recognized the need to support proxy requests. A proxy is an application which listens for requests coming from clients and then forwards those requests to the servers. This provides an ideal way to implement caching. Since the proxy application is already relaying requests and replies between clients and servers, it might just as well save copies of the objects that go by.