Web cache
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 multimedia and other files can result in less overall delay when browsing the Web.[1][2]
Distributed web applications should consider distributed caching.
Parts of the system[edit]
Forward and reverse[edit]
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.[3] A network-aware forward cache only caches heavily accessed items.[4] 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.
HTTP options[edit]
The Hypertext Transfer Protocol (HTTP) defines three basic mechanisms for controlling caches: freshness, validation, and invalidation.[5] 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.
Legality[edit]
In 1998, the DMCA added rules to the United States Code (17 U.S.C. §: 512) that exempts system operators from copyright liability for the purposes of caching.
Server-side software[edit]
This is a list of server-side web caching software.
Name | Operating system | Forward mode |
Reverse mode |
License | ||
---|---|---|---|---|---|---|
Windows | Unix-like | Other | ||||
Apache HTTP Server | Yes | OS X, Linux, Unix, FreeBSD, Solaris, Novell NetWare | OS/2, TPF, OpenVMS, eComStation | Yes | Apache 2.0 | |
aiScaler Dynamic Cache Control | No | Linux | No | Proprietary | ||
ApplianSys CACHEbox | No | Linux | No | Proprietary | ||
Blue Coat ProxySG | No | No | SGOS | Yes | Yes | Proprietary |
Nginx | Yes | Linux, BSD, OS X, Solaris, AIX, HP-UX | Yes | Yes | Yes | 2-clause BSD-like |
Microsoft Forefront Threat Management Gateway | Yes | No | No | Yes | Yes | Proprietary |
Polipo | Yes | OS X, Linux, OpenWrt, FreeBSD | ? | Yes | Yes | MIT License |
Squid | Yes | Linux | ? | Yes | Yes | GPL |
Traffic Server | ? | Linux | ? | Yes | Yes | Apache 2.0 |
Untangle | No | Linux | No | Yes | Yes | Proprietary |
Varnish | No | Linux | No | Needs a VMOD | Yes | BSD |
WinGate | Yes | No | No | Yes | Yes | Proprietary (Free for 8 users) |
Nuster | No | Linux | No | Yes | Yes | GPL |
McAfee Web Gateway | No | McAfee Linux Operating System | No | Yes | Yes | Proprietary |
See also[edit]
- InterPlanetary File System - makes web caches redundant
- Cache Discovery Protocol
- Cache manifest in HTML5
- Content delivery network
- Harvest project
- Proxy server
- Web accelerator
- Search engine cache
References[edit]
- ^ Fountis, Yorgos (4 May 2017). "How does the browser cache work?".
- ^ Messaoud, S.; Youssef, H. (2009). "An analytical model for the performance evaluation of stack-based Web cache replacement algorithms". International Journal of Communication Systems. 23: 1–22. doi:10.1002/dac.1036. S2CID 46507769.
- ^ Shinder, Thomas (2 September 2008). "Understanding Web Caching Concepts for the ISA Firewall". ISA Server. TechGenix Ltd. Archived from the original on 23 July 2011. Retrieved 27 February 2011.
- ^ Erman, Jeffrey; Gerber, Alexandre; Hajiaghayi, Mohammad T.; Pei, Dan; Spatscheck, Oliver (2008). "Network-Aware Forward Caching" (PDF). AT&T Labs: 291–300. CiteSeerX 10.1.1.159.1786. Archived from the original (PDF) on 1 April 2011. Retrieved 11 March 2019.
- ^ Kelly, Mike; Hausenblas, Michael. "Using HTTP Link: Header for Gateway Cache Invalidation" (PDF). WS-REST. p. 20. Archived from the original (PDF) on 10 July 2010. Retrieved 14 June 2013.
Further reading[edit]
- Ari Luotonen, Web Proxy Servers (Prentice Hall, 1997) ISBN 0-13-680612-0
- Duane Wessels, Web Caching (O'Reilly and Associates, 2001). ISBN 1-56592-536-X
- Michael Rabinovich and Oliver Spatschak, Web Caching and Replication (Addison Wesley, 2001). ISBN 0-201-61570-3