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

外部連結