A Web cache (or HTTP cache) is a system for optimizing the World Wide Web. It is implemented both client-side and server-side. The caching of multimedias and other files can result in less overall delay when browsing the Web.
A forward cache is a cache outside the web server's network, e.g. in the client's web browser, in an ISP, or within a corporate network. A network-aware forward cache only caches heavily accessed items. A proxy server sitting between the client and web server can evaluate HTTP headers and choose whether to store web content.
A reverse cache sits in front of one or more web servers, accelerating requests from the Internet and reducing peak server load. This is usually a content delivery network (CDN) that retains copies of web content at various points throughout a network.
The Hypertext Transfer Protocol (HTTP) defines three basic mechanisms for controlling caches: freshness, validation, and invalidation. This is specified in the header of HTTP response messages from the server.
Freshness allows a response to be used without re-checking it on the origin server, and can be controlled by both the server and the client. For example, the Expires response header gives a date when the document becomes stale, and the Cache-Control: max-age directive tells the cache how many seconds the response is fresh for.
Validation can be used to check whether a cached response is still good after it becomes stale. For example, if the response has a Last-Modified header, a cache can make a conditional request using the If-Modified-Since header to see if it has changed. The ETag (entity tag) mechanism also allows for both strong and weak validation.
Invalidation is usually a side effect of another request that passes through the cache. For example, if a URL associated with a cached response subsequently gets a POST, PUT or DELETE request, the cached response will be invalidated. Many CDNs and manufacturers of network equipment have replaced this standard HTTP cache control with dynamic caching.
This is a list of server-side web caching software.
|Apache HTTP Server||Windows, OS X, Linux, Unix, FreeBSD, Solaris, Novell NetWare, OS/2, TPF, OpenVMS and eComStation||Yes||Apache License 2.0|
|aiScaler Dynamic Cache Control||Linux||Proprietary|
|Blue Coat ProxySG||SGOS||Yes||Yes||Proprietary|
|Nginx||Linux, BSD variants, OS X, Solaris, AIX, HP-UX, other *nix flavors||Yes||Yes||2-clause BSD-like|
|Microsoft Forefront Threat Management Gateway||Windows||Yes||Yes||Proprietary|
|Polipo||Windows, OS X, Linux, OpenWrt, FreeBSD||Yes||Yes||MIT License|
|Squid||Linux, Unix, Windows||Yes||Yes||GNU General Public License|
|Traffic Server||Linux, Unix||Yes||Yes||Apache License 2.0|
|Varnish||Linux, Unix||Yes (possible with a VMOD)||Yes||BSD|
|WinGate||Windows||Yes||Yes||Proprietary / Free for 8 users|
|Nuster||Linux, Unix||Yes||Yes||GNU General Public License|
|McAfee Web Gateway||McAfee Linux Operating System||Yes||Yes||Proprietary|