什麼是Web快取,為什麼要使用它

listwebit發表於2015-07-01

Web快取遊走於伺服器和客戶端之間。這個伺服器可能是源伺服器(資源所駐留的伺服器Add),數量可能是1個或多個;這個客戶端也可能是1個或多個。Web快取就在伺服器-客戶端之間搞監控,監控請求,並且把請求輸出的內容(例如html頁面、 圖片和檔案)(統稱為副本)另存一份;然後,如果下一個請求是相同的URL,則直接請求儲存的副本,而不是再次麻煩源伺服器。

使用快取的2個主要原因:

  • 降低延遲:快取離客戶端更近,因此,從快取請求內容比從源伺服器所用時間更少,呈現速度更快,網站就顯得更靈敏。火箭
  • 降低網路傳輸:副本被重複使用,大大降低了使用者的頻寬使用,其實也是一種變相的省錢(如果流量要付費的話),同時保證了頻寬請求在一個低水平上,更容易維護了。

Web快取的型別

1. 瀏覽器快取
在任何現代瀏覽器上(如IE, FireFox, Chrome)折騰清除隱私資料(//zxx: 原文說的是首選項,顯然out了,這裡有改動)的對話方塊,你很可能會注意到“快取”這個設定項。

瀏覽器會在你的硬碟上專門開闢一個空間專門為你儲存資源副本。瀏覽器快取的工作規則很簡單:檢查以確保副本是最新的,通常只要一次會話(就是當前瀏覽器呼叫的這次N)。

瀏覽器快取在使用者觸發“後退”操作或點選一個之前看過的連結的時候很管用。同樣,如果你在網站上訪問同一張圖片,該圖片可以從瀏覽器快取中調出並幾乎立即顯現出來。

2. 代理伺服器快取
Web代理伺服器使用同樣的快取原理,只是規模更大。代理以同樣的方式服務千萬使用者,大公司和ISP(Internet Server Provider, Internet服務提供商Add)經常在他們的防火牆或者單獨的裝置(也被稱為中介(intermediaries))上架設代理快取。

由於代理伺服器快取並非客戶端或者源伺服器的一部分,而是處於網路中,請求需要以某種方式路由到它們。一種方法是手動設定,告訴瀏覽器的你常用的代理伺服器(//zxx: 翻牆的時候常用的),另外就是使用攔截。攔截代理(Interception proxies)把Web請求根據自己的底層網路重定向,因此,客戶端無需配置,甚至都不需要知道它們。//zxx: 維基百科上提供的幾種檢測攔截代理伺服器存在的方法add,您若有興趣,可以點選這裡檢視。

代理快取屬於一種共享快取;往往有大量的使用者使用,因此,其在降低延時和網路流量上很有用,畢竟每個副本都被大量重用。//zxx: 這裡我有疑問:就算是放在代理伺服器上,每次獲取還是要通過網路的啊,如何降低了網路流量呢?希望誰可以幫忙解惑下。

3. 閘道器快取
也被稱為“反向代理快取”或“替代快取”。閘道器快取同樣是起中介作用的,不過不是(素不相識、不曾謀面的Add)網路管理員部署的,而多半是網站管理員(公司專門的運維工程師、或UED或程式組某人Add)他們自己部署,這樣更容易擴充套件與維護。

可以有多種方法把請求路由到閘道器快取,但通常使用某種形式的負載均衡器,使它們中的一個或多個看起來像是源伺服器。內容分發網路(CDNs)為整個網路(或部分)分配閘道器快取,然後把這些快取賣給需要的網站。SpeederaAkamai就是代表性的網路內容釋出商。


相關文章