什麼是Web快取,為什麼要使用它
Web快取遊走於伺服器和客戶端之間。這個伺服器可能是源伺服器(資源所駐留的伺服器Add),數量可能是1個或多個;這個客戶端也可能是1個或多個。Web快取就在伺服器-客戶端之間搞監控,監控請求,並且把請求輸出的內容(例如html頁面、 圖片和檔案)(統稱為副本)另存一份;然後,如果下一個請求是相同的URL,則直接請求儲存的副本,而不是再次麻煩源伺服器。
使用快取的2個主要原因:
- 降低延遲:快取離客戶端更近,因此,從快取請求內容比從源伺服器所用時間更少,呈現速度更快,網站就顯得更靈敏。
- 降低網路傳輸:副本被重複使用,大大降低了使用者的頻寬使用,其實也是一種變相的省錢(如果流量要付費的話),同時保證了頻寬請求在一個低水平上,更容易維護了。
Web快取的型別
在任何現代瀏覽器上(如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)為整個網路(或部分)分配閘道器快取,然後把這些快取賣給需要的網站。Speedera③和Akamai④就是代表性的網路內容釋出商。
相關文章
- TypeScript是什麼,為什麼要使用它?TypeScript
- 什麼是HSTS,為什麼要使用它?
- 什麼是行為資料?企業為什麼要使用它?
- 你知道什麼是BLOB URL嗎?為什麼要使用它?
- 為什麼要使用Redis做快取Redis快取
- 淺談DAST,什麼是DAST,開發人員為什麼要使用它?AST
- 快取和web快取分別是什麼?快取Web
- 公司為什麼要使用OKR,目的是什麼?OKR
- GC是什麼?為什麼我們要去使用它GC
- 為什麼要有 Servlet ,什麼是 Servlet 容器,什麼是 Web 容器?ServletWeb
- SpringMVC系列知識:(二)什麼是springMVC,為什麼要使用springMVCSpringMVC
- 為什麼要使用zookeeper
- 為什麼要使用 Redis?Redis
- 為什麼要使用promisePromise
- 為什麼要使用CDN?
- 什麼是ping如何使用它
- 什麼是設計模式?為什麼要使用設計模式?有什麼好處?設計模式
- 什麼是Godaddy?站長使用它的原因是什麼Go
- 什麼是HTTP快取機制?HTTP快取
- 什麼是redis快取雪崩、快取穿透、快取擊穿Redis快取穿透
- 快取穿透、快取雪崩和快取擊穿是什麼?快取穿透
- Web3.0是什麼,為什麼MetaVerse這麼火?WebMetaverse
- 什麼是redis的快取雪崩與快取穿透Redis快取穿透
- 什麼是DNS快取?DNS快取有哪些作用?DNS快取
- 什麼是Web workers?為什麼我們需要他Web
- 我為什麼要使用Webpack?Web
- 為什麼要使用sass/less?
- 為什麼要使用微服務微服務
- 為什麼要使用代理池?
- 什麼是LRU快取淘汰機制快取
- 為什麼redis是單執行緒的以及為什麼這麼快?Redis執行緒
- 瀏覽器快取是什麼?它的機制又是什麼?瀏覽器快取
- 為什麼要使用Node.JSNode.js
- angularjs中,為什麼要使用resolve?AngularJS
- 為什麼要使用模組模式?模式
- 為什麼要使用CRM系統?
- web assembly是什麼,能幹什麼Web
- 面試官:快取穿透、快取雪崩和快取擊穿是什麼?面試快取穿透
- Jtti:Centos清理快取的方法是什麼JttiCentOS快取