Web緩存

用於臨時存儲(緩存)網頁文檔的機制

Web緩存(或HTTP緩存)是用於臨時存儲(緩存Web文檔(如HTML頁面圖像),以減少服務器延遲的一種信息技術。Web緩存系統會保存下通過這套系統的文檔的副本;如果滿足某些條件,則可以由緩存滿足後續請求。[1] Web緩存系統既可以指設備英語Server appliance,也可以指計算機程序。

系統

Web緩存可以用於各種系統(從Web內容的傳輸方向來看):

前向位置系統(接受者或客戶端)

前向緩存是Web服務器網絡外部的緩存,例如在客戶電腦、ISP或公司網絡上。[2] 網絡感知前向緩存就像一個前向緩存,但只緩存大量訪問的項目。[3] 客戶端(如網頁瀏覽器)也可以存儲網絡內容以供重用。例如,如果按下後退按鈕,則可以顯示本地緩存版本的頁面,而不是發送到Web服務器的新請求。位於客戶端和服務器之間的Web代理可以通過評估HTTP頭來選擇是否存儲網頁內容。

反向位置系統(內容提供者或Web服務器端)

反向緩存位於一個或多個Web服務器和Web應用的前端,加速來自互聯網的請求,[4] 從而減少Web服務器的高峰負載。內容傳遞網路(CDN)可以在整個網絡的各個點上保留網頁內容的副本。搜索引擎也可能會緩存一個網站;它提供了一種從最近停機的網站檢索信息的方法,或者比點擊直接鏈接更快地檢索數據的方式。例如,Google就是這麼做的。Google搜索結果中可以找到緩存內容的鏈接。

緩存控制

HTTP定義了三種控制緩存的基本機制:新鮮度,驗證和失效。[5]

新鮮度
允許在不在源服務器上重新檢查的情況下使用一個響應,並且可以由服務器和客戶端來控制。例如,Expires響應頭給出文檔過期的日期,而Cache-Control: max-age指示告訴緩存該響應在多少秒內保持新鮮。
驗證
可用於檢查緩存的響應是否過時之後仍然有效。例如,若響應有一個Last-Modified頭,緩存可以使用If-Modified-Since頭來發出一個條件請求,來查看它是否已經改變。ETag(實體標籤)機制還允許強弱驗證。
失效
通常是另一個請求通過緩存的一個結果。例如,如果與緩存的響應關聯的URL隨後獲得POST、PUT或DELETE請求,則緩存的響應將失效。

許多CDN和網絡設備製造商已經用動態緩存取代了這個標準的HTTP緩存控制。

法律問題

1998年,數字千年版權法增加了美國法典17 U.S.C. §: 512英語Online Copyright Infringement Liability Limitation Act)的規定,放棄追究以緩存為目的的系統運營商的版權責任。

Web緩存軟件

以下是專門的Web緩存服務器軟件列表:

名稱 操作系統 前向模式 反向模式 協議
Apache HTTP Server Windows, OS X, Linux, Unix, FreeBSD, Solaris, Novell NetWare, OS/2, TPF, OpenVMS and eComStation Apache License 2.0
aiScaler英語aiScaler Dynamic Cache Control Linux 專有
ApplianSys CACHEbox英語ApplianSys Linux 專有
Blue Coat Systems英語Blue Coat Systems ProxySG SGOS 專有
Nginx Linux, BSD variants, OS X, Solaris, AIX, HP-UX, other *nix flavors 2-clause BSD-like
Microsoft Forefront Threat Management Gateway英語Microsoft Forefront Threat Management Gateway Windows 專有
Polipo Windows, OS X, Linux, OpenWrt, FreeBSD MIT License
Squid Linux, Unix, Windows GNU General Public License
Traffic Server Linux, Unix Apache License 2.0
Untangle英語Untangle Linux 專有
Varnish cache Linux, Unix 是 (possible with a VMOD) BSD許可證
WinGate英語WinGate Windows 專有 / Free for 3 users
Nuster Linux, Unix GNU通用公共許可證

參見

注釋

  1. ^ Geoff Huston. Web Caching. Cisco. The Internet Protocol Journal - Volume 2, No. 3. [2009-09-10]. (原始內容存檔於2015-09-23). 
  2. ^ Thomas Shinder. Understanding Web Caching Concepts for the ISA Firewall. [2011-02-27]. (原始內容存檔於2013-01-16). 
  3. ^ Erman, Jeffrey; Gerber, Alexandre; Hajiaghayi, Mohammad T.; Pei, Dan; Spatscheck, Oliver. Network-Aware Forward Caching (PDF). AT&T Labs. 2008 [2018-01-27]. CiteSeerX 10.1.1.159.1786 . (原始內容 (PDF)存檔於2011-04-01). 
  4. ^ Multiple (wiki). Web application/Caching. Docforge. [2010-03-06]. (原始內容存檔於2019-12-12). 
  5. ^ PowerPoint Presentation (PDF). [2013-06-14]. (原始內容存檔 (PDF)於2010-07-10). 

延伸閱讀

  • 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

外部連結