Web cache

From Wikipedia, the free encyclopedia
Jump to: navigation, search

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.

Contents

[edit] 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.

[edit] 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.

[edit] 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.

[edit] Comparison of web caches

Name Type Operating System Forward
Mode
Reverse
Mode
License
Apache HTTP Server Software Linux, Unix, Windows, ... Yes Yes Apache License 2.0
ApplianSys CACHEbox Appliance Linux Yes Yes Commercial
Blue Coat ProxySG Appliance SGOS Yes Yes Commercial
Nginx Software Linux, Unix No Yes 2-clause BSD-like
Microsoft Forefront Threat Management Gateway Software Windows Yes Yes Commercial
Polipo Software Linux, Unix, Windows Yes Yes GNU GPL
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 Commercial
Varnish Software Linux, Unix No Yes BSD
WinGate Software Windows Yes Yes Commercial / Free for 3 users

[edit] See also

[edit] Notes

  1. ^ Geoff Huston. "Web Caching". Cisco. The Internet Protocol Journal - Volume 2, No. 3. Retrieved 2009-09-10. 
  2. ^ Thomas Shinder. "Understanding Web Caching Concepts for the ISA Firewall". Retrieved 2011-02-27. 
  3. ^ Jeffrey Erman, Alexandre Gerber, Mohammad T. Hajiaghayi, Dan Pei, Oliver Spatscheck (2008). "Network-Aware Forward Caching". AT&T Labs. Retrieved 2011-02-27. 
  4. ^ Multiple (wiki). "Web application/Caching". Docforge. Retrieved 2010-03-06. 
  5. ^ http://ws-rest.org/files/03-Link%20Header-based%20Invalidation%20of%20Caches.pdf

[edit] Further reading

[edit] External links