Web cache
A web cache is a mechanism for the temporary storage (caching) of web documents, such as HTML pages and images, to reduce bandwidth usage, server load, and perceived lag. A web cache stores copies of documents passing through it; subsequent requests may be satisfied from the cache if certain conditions are met.[1] Google's cache link in its search results provides a way of retrieving information from websites that have recently gone down and a way of retrieving data more quickly than by clicking the direct link.
Systems
Web caches can be used in various systems.
- A search engine may cache a website.
- A forward cache is a cache outside the webserver's network, e.g. on the client software's ISP or company network.[2]
- A network-aware forward cache is just like a forward cache but only caches heavily accessed items.[3]
- A reverse cache sits in front of one or more Web servers and web applications, accelerating requests from the Internet.[4]
- A client, such as a web browser, can 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 to store web content.
- A content delivery network can retain copies of web content at various points throughout a network.
Cache control
HTTP defines three basic mechanisms for controlling caches: freshness, validation, and invalidation.[5]
- 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.
Legal issues
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.
Comparison of web caches
Name | Type | Operating System | Forward Mode |
Reverse Mode |
License |
---|---|---|---|---|---|
Apache HTTP Server | Software | ||||
ApplianSys CACHEbox | Appliance | Linux | Yes | Yes | Proprietary |
Blue Coat ProxySG | Appliance | SGOS | Yes | Yes | Proprietary |
Nginx | Software | Linux, Unix | Yes | Yes | 2-clause BSD-like |
Microsoft Forefront Threat Management Gateway | Software | Windows | Yes | Yes | Proprietary |
Polipo | Software | Linux, Unix, Windows | Yes | Yes | MIT License |
Squid | Software | Linux, Unix, Windows | Yes | Yes | GNU GPL |
Traffic Server | Software | Linux, Unix | Yes | Yes | Apache License 2.0 |
Untangle | Software | Linux | Yes | Yes | Proprietary |
Varnish | Software | Linux, Unix | Yes | Yes | BSD |
WinGate | Software | Windows | Yes | Yes | Proprietary / Free for 3 users |
See also
Notes
- ↑ Geoff Huston. "Web Caching". Cisco. The Internet Protocol Journal - Volume 2, No. 3. Retrieved 2009-09-10.
- ↑ Thomas Shinder. "Understanding Web Caching Concepts for the ISA Firewall". Retrieved 2011-02-27.
- ↑ Jeffrey Erman, Alexandre Gerber, Mohammad T. Hajiaghayi, Dan Pei, Oliver Spatscheck (2008). "Network-Aware Forward Caching". AT&T Labs. Retrieved 2011-02-27.
- ↑ Multiple (wiki). "Web application/Caching". Docforge. Retrieved 2010-03-06.
- ↑ "PowerPoint Presentation" (PDF). Retrieved 2013-06-14.
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
- Caching Tutorial for Web Authors and Webmasters
- Web Caching and Content Delivery Resources
- Web Caching, Web caching in general with some references to SQUID
- Cache control directives demystified Explanations, do's and don't