Client Side Cache 和 Server Side Cache 的区别
Cache me outside
緩存是一種優化網頁加載時間并優化其使用的內存量的持久化機制。
Cache 的定義
出于篇幅限制,本文重點介紹 Web 緩存。 當您加載網站時,網站數據(如圖像、視頻和 html 文檔)將被保存。 重新加載網站后,它不會調用數據庫再次獲取該數據。 它只是將數據從內存中讀取。
緩存以容量換取速度,緩存通常會暫時存儲數據的子集,而數據庫的數據通常是完整且持久的。
Client Side Caching
客戶端緩存通常稱為瀏覽器緩存,盡管客戶端緩存是一個稍微寬泛的術語。其運行原理如下圖所示:
一旦瀏覽器從服務器請求數據,它就會將其存儲到瀏覽器創建的文件夾中。 下次打開網頁時,它不會調用服務器獲取數據,而是從瀏覽器緩存文件夾中提取數據。
Server Side Caching
服務器端緩存是一個類似的概念,但稍微復雜一些。
一旦用戶向網站發出請求,其數據就會存儲在服務器上。 下次用戶發出請求時,它只需從服務器取回保存的數據,無需從數據庫中提取數據,從而節省時間。
這些緩存由站點管理員實現,充當瀏覽器和源服務器之間的中介。 它們通常也基于 HTTP 緩存指令。
Remote Caching
遠程緩存類似于服務器端緩存,但它也可以運行應用程序來序列化和反序列化數據。 不同之處在于您可以控制遠程服務器,而不是由其他人操作。
通常通過應用程序代碼或使用可以利用內存中數據存儲的應用程序框架來檢索 Web 內容。
Server-Side vs Remote vs Client Side
主要區別在于網站的數據在本地保存在客戶端緩存中,而在服務器端緩存中可以分發給所有用戶,而在遠程中,數據也得到處理。
大多數精心設計的網站或應用程序將同時使用服務器端和客戶端。
Why caching?
通過減少后端資源的負載和網絡擁塞,緩存 Web 內容有助于提高網站的響應能力。 - AWS
Downside
如果您嘗試訪問的網站已更新,則在清除緩存之前您可能看不到更新。 這可能發生在您之前,特別是如果您是一名 Web 開發人員并且您正在嘗試更新您網站的設計。 如果緩存存儲在您的客戶端,解決方案很簡單。
這適用于客戶端緩存,如果服務器端緩存沒有正確處理這種情況,可能會在服務器端緩存上返回錯誤。
如果您使用遠程緩存,它可以處理該錯誤并為您清除緩存并為您加載新請求。
簡而言之,client side cache:
您的網絡瀏覽器(Chrome、Firefox、Safari 或任何您使用的瀏覽器)決定記住網頁的外觀,因此不必再次請求服務器發送網頁。 這通過消除幾乎整個網絡通信來節省時間(和帶寬)。 但是,如果服務器決定更改網頁的外觀,您就會遇到麻煩,因為瀏覽器對它認為頁面應該是什么樣子的“記憶”現在已經過時了,它會給您一個舊版本的頁面而不是新的。 這就是為什么人們有時會告訴您“清除瀏覽器緩存” - 這會迫使您的瀏覽器“忘記”頁面的外觀。 這迫使它向服務器詢問頁面的新的、更新的版本。
server side cache:
負責生成網頁(即,將網頁放在一起)的服務器決定記住網頁的外觀,因此不必再次生成它。 這節省了時間(但不是帶寬),因為現在服務器不必經歷構建整個頁面的麻煩——它可以重新發送上次瀏覽器請求時發送的任何內容。 但是,如果網頁上的任何數據需要更改,服務器將被迫丟棄其對頁面外觀的“記憶”,并需要重新生成頁面。 如果頁面真的很復雜并且需要很多時間來生成,這種緩存很有用。
更多Jerry的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的Client Side Cache 和 Server Side Cache 的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为mate20pro和p30pro区别
- 下一篇: qq飞车银河战舰多少点券出(PC版官方网