webStorage:
- sessionStorage:嚴格用於在一個瀏覽器會話中儲存資料,在瀏覽器關閉之後會立即刪除。
- localStorage:用於跨會話持久化資料並遵循跨域安全策略。
cookie:
- 一小塊可以客戶端設定也可以在伺服器端設定的資訊,每次發起請求時都會傳送它。
共同點:
- 都是儲存在瀏覽器端,且同源的。
不同點:
- 網路請求方面:
-
cookie資料始終在同源的請求中攜帶,即cookie在瀏覽器和伺服器間來回傳遞。
-
sessionStorage和localStorage不會自動把資料發給伺服器,僅在本地儲存。
- 儲存空間方面:
-
cookie資料不能超過4k,同時因為每次http請求都會攜帶cookie,所以cookie只適合儲存很小的資料,如會話標識。
-
sessionStorage和localStorage 雖然也有儲存大小的限制,但比cookie大得多,可以達到5M或更大。
- 資料永續性方面:
-
sessionStorage:僅在當前瀏覽器視窗關閉前有效,自然也就不可能持久保持。
-
localStorage:始終有效,視窗或瀏覽器關閉也一直儲存,因此用作持久資料。
-
cookie只在設定的cookie過期時間之前一直有效,即使視窗或瀏覽器關閉。
- 作用域方面:
-
sessionStorage不在不同的瀏覽器視窗中共享,即使是同一個頁面。
-
localStorage 在所有同源視窗中都是共享的。
-
cookie也是在所有同源視窗中都是共享的。
- 此外:
-
cookie資料還有路徑(path)的概念,可以限制cookie只屬於某個路徑下。
-
Web Storage 支援事件通知機制,可以將資料更新的通知傳送給監聽者。
相關連結: 客戶端(瀏覽器端)資料儲存技術概覽