OpenVMS with Apache, OSU, and WASD

Caching in general is the act of keeping things around where you can access them faster, typically by keeping them in RAM after you've accessed them from disk (and thus amortizing the cost of the disk I/O over multiple accesses). For this to be a win, you need to have enough physical memory available to do it. If you don't, any I/O wins from having the documents in memory are more than offset by the hit from increased paging.
Caching is distributed all over the Web. The second America Online user who looks at your home page in 15 seconds will probably receive a copy of it from America Online's cache, not from your server. But if you're actually getting multiple hits yourself, you want to avoid expensive disk I/O to get the pages and images in question, so you run a cache yourself, keeping the pages in memory.
In some environments it makes sense for the desktop clients to access the wider world through a single gateway for example, if you have only one high-speed connection to the greater world or if your organization needs to restrict Web access to specific outside sites. In that case, you configure a Web proxy that will collect Web content from outside your local site on behalf of the Web clients, cache the results locally for greater performance, and distribute the results to local clients when they request it.
A Web proxy can also block local clients from getting at...