Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Web cache
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|System for optimizing the Web}} 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 [[web browser|browsing]] the Web.<ref>{{Cite web |last=Fountis |first=Yorgos |date=4 May 2017 |title=How does the browser cache work? |url=https://pressidium.com/blog/2017/browser-cache-work/}}</ref><ref>{{Cite journal |last1=Messaoud |first1=S. |last2=Youssef |first2=H. |date=2009 |title=An analytical model for the performance evaluation of stack-based web cache replacement algorithms |url=https://onlinelibrary.wiley.com/doi/10.1002/dac.1036 |journal=International Journal of Communication Systems |language=en |volume=23 |pages=1β22 |doi=10.1002/dac.1036|s2cid=46507769 |url-access=subscription }}</ref> ==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. A network-aware forward cache only caches heavily accessed items. 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. 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 Digital Millennium Copyright Act 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. {| style="font-size: 85%; text-align: center; width: auto;" class="sortable wikitable" |- !rowspan="2"|Name !colspan="3"|Operating system !rowspan="2"|Forward<br />mode !rowspan="2"|Reverse<br />mode !rowspan="2"|License |- ![[Microsoft Windows|Windows]] ![[Unix-like]] !Other |- ! scope="row" |[[Apache HTTP Server]] | {{yes}} | {{yes|OS X, Linux, Unix, FreeBSD, Solaris, Novell NetWare}} | {{yes|OS/2, TPF, OpenVMS, eComStation}} |{{Yes}} | | {{open source|[[Apache 2.0]]}} |- ! scope="row" | [[aiScaler]] Dynamic Cache Control | {{no}} | {{yes|[[Linux]]}} | {{no}} | | | {{Proprietary}} |- ! scope="row" | [[ApplianSys#CACHEbox|ApplianSys CACHEbox]] | {{no}} | {{yes|[[Linux]]}} | {{no}} | | | {{Proprietary}} |- ! scope="row" | [[Blue Coat Systems|Blue Coat]] ProxySG | {{no}} | {{no}} | {{yes2|SGOS}} | {{Yes}} | {{Yes}} | {{Proprietary}} |- ! scope="row" | [[Nginx]] | {{yes}} | {{yes|[[Linux]], [[BSD]], [[OS X]], [[Solaris (operating system)|Solaris]], [[AIX]], [[HP-UX]]}} | {{yes}} | {{Yes}} | {{Yes}} | {{open source|2-clause [[BSD licenses|BSD]]-like}} |- ! scope="row" | [[Microsoft Forefront Threat Management Gateway]] | {{yes}} | {{no}} | {{no}} | {{Yes}} | {{Yes}} | {{Proprietary}} |- ! scope="row" | [[Polipo]] | {{yes}} | {{yes|[[OS X]], [[Linux]], [[OpenWrt]], [[FreeBSD]]}} | {{dunno}} | {{Yes}} | {{Yes}} | {{open source|[[MIT License]]}} |- ! scope="row" | [[Squid (software)|Squid]] | {{yes}} | {{yes|[[Linux]]}} | {{dunno}} | {{Yes}} | {{Yes}} | {{open source|[[GPL]]}} |- ! scope="row" | [[Apache Traffic Server]] | {{dunno}} | {{yes|[[Linux]]}} | {{dunno}} | {{Yes}} | {{Yes}} | {{open source|[[Apache 2.0]]}} |- ! scope="row" | Untangle | {{no}} | {{yes|[[Linux]]}} | {{no}} | {{Yes}} | {{Yes}} | {{Proprietary}} |- ! scope="row" | [[Varnish (software)|Varnish]] | {{no}} | {{yes|[[Linux]]}} | {{no}} | {{Needs}} a VMOD | {{Yes}} | {{open source|[[BSD licenses|BSD]]}} |- ! scope="row" | [[WinGate]] | {{yes}} | {{no}} | {{no}} | {{Yes}} | {{Yes}} | {{Proprietary}} (Free for 8 users) |- ! scope="row" |Nuster | {{no}} | {{yes|[[Linux]]}} | {{no}} | {{Yes}} | {{Yes}} | {{open source|[[GPL]]}} |- ![[McAfee]] Web Gateway | {{no}} | {{yes2|McAfee Linux Operating System}} | {{no}} | {{Yes}} | {{Yes}} | {{Proprietary}} |} == See also == * [[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 == {{Reflist}} ==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}} {{WebManTools}} {{DEFAULTSORT:Web Cache}} [[Category:Hypertext Transfer Protocol]] [[Category:Cache (computing)]] [[Category:Proxy servers|*]] [[Category:Web caching protocol]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite journal
(
edit
)
Template:Cite web
(
edit
)
Template:Dunno
(
edit
)
Template:ISBN
(
edit
)
Template:Needs
(
edit
)
Template:No
(
edit
)
Template:Open source
(
edit
)
Template:Proprietary
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:WebManTools
(
edit
)
Template:Yes
(
edit
)
Template:Yes2
(
edit
)