iT邦幫忙

2024 iThome 鐵人賽

DAY 13
0

今天我們要來介紹快取,快取顧名思義,它就是專for快速存取用徒,當我們需要頻繁的存取資料或取得複雜計算的結果,就可以利用快取將資料儲存在記憶體一段時間。
當下次客戶端請求相同的資料時,它不會從資料庫中搜尋資料,而是從本地內存中提供資料。
快取的優點是它透過減少處理負擔來提高效能。
但缺點就是比較昂貴,他犧牲了空間來換取速度,可以想像成SSD比一般傳統硬碟貴一樣XD 另外還有快取的時間性,分散式快取的問題。

Server-side caching and Client-side caching

Server-side caching

伺服器端快取將資料暫時儲存在caching server上以供日後重複使用。

當用戶第一次請求網頁時,網站會經過正常的流程,從伺服器獲得數據,生成或建構網頁。在請求處理完成並且發送回去後,伺服器會複製該網頁並將其儲存為快取。

下次用戶重新訪問網站時,會載入已經儲存或快取的網頁副本,從而使載入速度更快。

https://ithelp.ithome.com.tw/upload/images/20240926/20129702AaD3OfXyw5.png
圖片來源:Edgemesh

缺點

如果server資料有變化,快取就必須要重新建構,或是遇到快取未命中的問題。
快取未命中: 當user request的數據不在快取中(就是「快取未命中」),伺服器需要從原始資料重新取得。這個過程包括從資料庫或其他後端系統讀取資料,並將其送回給用戶,這會造成顯著的延遲。

Client-side caching

而Client-side caching則是將資料儲存在user的瀏覽器記憶體當中,不是存在server上。

https://ithelp.ithome.com.tw/upload/images/20240926/20129702ohTpZlIGRV.png
圖片來源: medium

缺點

Client-side caching的缺點是基於各個瀏覽器的,如果使用多個瀏覽器,同一網頁就會有各種快取檔案。

Client-side caching的另一個缺點是它比伺服器端快取更複雜,因為它還需要處理與server的同步等問題。

比較

比較項目 Server-side Caching Client-side Caching
位置 在伺服器端儲存資料的快取 在用戶端(瀏覽器或應用程式)儲存資料的快取
延遲 減少伺服器與資料庫之間的查詢時間,但仍會有網絡延遲。 減少網絡請求,延遲最小,資料可立即從用戶端獲取
資源使用 減少伺服器的負載和資料庫的查詢壓力 減少伺服器的負載,無需頻繁請求伺服器,但增加用戶端存儲空間
可擴展性 適用於多用戶共享的資料或動態生成的內容 適用於單一用戶的靜態內容,如圖片、CSS、JS 文件
資料更新 可以在伺服器端集中管理和更新資料 資料可能過期,用戶需要手動或程序化清除快取來獲取更新資料
安全性 資料存儲在伺服器上,通常比較安全 資料儲存在用戶端,可能會暴露敏感資訊
實現難度 需要伺服器端配置和管理,但可以應對較複雜的應用場景 實現較為簡單,通常通過 HTTP header 或離線存儲技術實現
靈活性 可以根據請求的具體情況靈活調整。 客戶端控制,依賴於瀏覽器或應用的快取策略。
適用場景 適合動態資料、多用戶系統和需要高一致性的應用。 適合靜態內容、單用戶應用或需要快速加載的網頁。

總結

  • Server-side caching通常適合需要減少伺服器負載、管理動態資料和多用戶訪問的應用場景。
  • Client-side caching則適合靜態資源或單用戶資料,能夠顯著提高用戶端的響應速度並減少伺服器的壓力。

reference

https://www.naukri.com/code360/library/server-side-caching-and-client-side-caching


上一篇
Day 12 Authentication - Cookie-Based Authentication
下一篇
Day 14 Web Security Knowledge
系列文
Backend Developer的學習Roadmap30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言