sessionStorage 、localStorage 和 cookie 之間的區別

sessionStorage 、localStorage 和 cookie 之間的區別

  1. cookie數據始終在同源的http請求中攜帶(即使不需要),即cookie在瀏覽器和服務器間來回傳遞;cookie數據還有路徑(path)的概念,可以限制cookie只屬於某個路徑下。存儲大小限制也不同,cookie數據不能超過4k,同時因爲每次http請求都會攜帶cookie,所以cookie只適合保存很小的數據,如會話標識。
  2. 而sessionStorage和localStorage不會自動把數據發給服務器,僅在本地保存。sessionStorage和localStorage 雖然也有存儲大小的限制,但比cookie大得多,可以達到5M或更大。
  3. 數據有效期不同,sessionStorage:僅在當前瀏覽器窗口關閉前有效,自然也就不可能持久保持;localStorage:始終有效,窗口或瀏覽器關閉也一直保存,因此用作持久數據;cookie只在設置的cookie過期時間之前一直有效,即使窗口或瀏覽器關閉。
  4. 作用域不同,sessionStorage不在不同的瀏覽器窗口中共享,即使是同一個頁面;localStorage 在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。Web Storage 支持事件通知機制,可以將數據更新的通知發送給監聽者。Web Storage 的 api 接口使用更方便。

簡單概括就是:session當頁面關閉,存儲消失,無大小限制;cookie存儲數據較小,當時間過期,存儲失效;localStorage存儲在客戶端,無大小與時間的限制,只要同源皆可訪問。(session與localStorage是H5的新特性)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章