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 images and other files can result in less overall delay when browsing the Web.[1]
Parts of the system[]
Forward and reverse[]
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.[2] A network-aware forward cache only caches heavily accessed items.[3] 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[]
The Hypertext Transfer Protocol (HTTP) defines three basic mechanisms for controlling caches: freshness, validation, and invalidation.[4] 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[]
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[]
This is a list of server-side web caching software.
Name | Operating system | Forward mode |
Reverse mode |
License |
---|---|---|---|---|
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 | ||
ApplianSys CACHEbox | 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 |
Untangle | Linux | Yes | Yes | Proprietary |
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 |
See also[]
- Cache Discovery Protocol
- Cache manifest in HTML5
- Content delivery network
- Harvest project
- Proxy server
- Web accelerator
- Search engine cache
References[]
- ^ Fountis, Yorgos (4 May 2017). "How does the browser cache work?". Retrieved 19 February 2020.
- ^ 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. Retrieved 14 June 2013.
Further reading[]
- 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
External links[]
- Hypertext Transfer Protocol
- Cache (computing)
- Proxy servers
- Web caching protocol