Web cache
A web cache (or HTTP cache) is an information technology for the temporary storage (caching) of web documents, such as HTML pages and images, to reduce server lag. A web cache system documents passing through it; subsequent requests may be satisfied from if certain conditions are met.[1] A web cache system can refer either to an appliance, or to a computer program.
Contents
Systems[edit]
[2]Web caches can be used in various systems (as viewed from direction of delivery of web content):
Forward position system (recipient or client side)[edit]
A forward cache is a cache outside the web server's network, e.g. on the client computer, in an ISP or within a corporate network.[3] A network-aware forward cache is just like a forward cache but only caches heavily accessed items.[4] A client, such as a web browser, can also store web content for reuse. For example, if the back button is pressed, the local cached version of a page may be displayed instead of a new request being sent to the web server. A web proxy sitting between the client and the server can evaluate HTTP headers and choose whether to store web content.
Reverse position system (content provider or web-server side)[edit]
A reverse cache sits in front of one or more web servers and web applications, accelerating requests from the Internet,[5] reducing peak web server load. A content delivery network (CDN) can retain copies of web content at various points throughout a network. A search engine may also cache a website; it provides a way of retrieving information from websites that have recently gone down or a way of retrieving data more quickly than by clicking the direct link. Google, for instance, does so. Links to cached contents may be found in Google search results.
Cache control[edit]
HTTP defines three basic mechanisms for controlling caches: freshness, validation, and invalidation.[6]
- 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.
Legal issues[edit]
In 1998, the DMCA added rules to the United States Code (17 U.S.C. : 512) that relinquishes system operators from copyright liability for the purposes of caching.
Web caching software[edit]
The following is a list of dedicated web caching server 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 | No | Yes | Apache License 2.0 |
aiScaler Dynamic Cache Control | Linux | Yes | Yes | Proprietary |
ApplianSys CACHEbox | Linux | Yes | Yes | 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 3 users |
Nuster | Linux, Unix | Yes | Yes | GNU General Public License |
See also[edit]
Notes[edit]
- ^ Geoff Huston. "Web Caching". Cisco. The Internet Protocol Journal - Volume 2, No. 3. Retrieved 2009-09-10.
- ^ Empty citation (help)
- ^ Thomas Shinder. "Understanding Web Caching Concepts for the ISA Firewall". Retrieved 2011-02-27.
- ^ Erman, Jeffrey; Gerber, Alexandre; Hajiaghayi, Mohammad T.; Pei, Dan; Spatscheck, Oliver (2008). "Network-Aware Forward Caching" (PDF). AT&T Labs. CiteSeerX 10.1.1.159.1786
.
- ^ Multiple (wiki). "Web application/Caching". Docforge. Retrieved 2010-03-06.
- ^ "PowerPoint Presentation" (PDF). Retrieved 2013-06-14.
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
External links[edit]
- Caching Tutorial for Web Authors and Webmasters
- Web Caching and Content Delivery Resources
- Web Caching, Web caching in general with some references to SQUID