localstorage sessionstorage和cookie的區別


基本概念

cookie:是網景公司的前雇員在1993年發明。它的主要用於保存登陸信息,比如登陸某個網站市場可以看到'記住密碼’,這就是通過在cookie中存入一段辨別用戶身份的數據來實現的。

sessionStorage:會話,是可以將一部分數據在當前會話中保存下來,刷新頁面數據依舊存在。但是頁面關閉后,sessionStorage中的數據就會被清空。

localStorage:是HTML5標准中新加入的技術,當然早在IE6時代就有一個userData的東西用於本地存儲,而當時考慮到瀏覽器的兼容性,更通用的方案是使用flash。如今localStorage被大多數瀏覽器所支持。

 

三者區別

1)存儲大小

cookie:一般不超過4K(因為每次http請求都會攜帶cookie、所以cookie只適合保存很小的數據,如會話標識)

sessionStorage:5M或者更大

localStorage:5M或者更大

2)數據有效期

cookie:一般由服務器生成,可以設置失效時間;若沒有設置時間,關閉瀏覽器cookie失效,若設置了時間,cookie就會存放在硬盤里,過期才失效

sessionStorage:僅在當前瀏覽器窗口關閉之前有效,關閉頁面或者瀏覽器會被清除

localStorage:永久有效,窗口或者瀏覽器關閉也會一直保存,除非手動永久清除,因此用作持久數據

3)作用域

cookie:在所有同源窗口中都是共享的

sessionStorage:在同一個瀏覽器窗口是共享的(不同瀏覽器、同一個頁面也是不共享的)

localStorage:在所有同源窗口中都是共享的

4)通信

ccokie:十種攜帶在同源的http請求中,即使不需要,故cookie在瀏覽器和服務器之間來回傳遞;如果使用cookie保存過多數據會造成性能問題

sessionStorage:僅在客戶端(即瀏覽器)中保存,不參與和服務器的通信;不會自動把數據發送給服務器,僅在本地保存

localStorage:僅在客戶端(即瀏覽器)中保存,不參與和服務器的通信;不會自動把數據發送給服務器,僅在本地保存

5)易用性

cookie:需要自己進行封裝,原生的cookie接口不夠友好

sessionStorage:原生接口可以接受,可以封裝來對Object和Array有更好的支持

localStorage:原生接口可以接受,可以封裝來對Object和Array有更好的支持

 

應用場景

cookie:判斷用戶是否登錄過網站,以便實現下次自動登錄或記住密碼;保存事件信息等

sessionStorage:敏感賬號一次性登錄;單頁面用的較多(sessionStorage 可以保證打開頁面時 sessionStorage 的數據為空)

localStorage:常用於長期登錄(判斷用戶是否已登錄),適合長期保存在本地的數據

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM