localstorage sessionstorage和cookie的區別

基本概念

cookie:是網景公司的前僱員在1993年發明。它的主要用於保存登錄信息,好比登錄某個網站市場能夠看到'記住密碼’,這就是經過在cookie中存入一段辨別用戶身份的數據來實現的。瀏覽器

sessionStorage:會話,是能夠將一部分數據在當前會話中保存下來,刷新頁面數據依舊存在。可是頁面關閉後,sessionStorage中的數據就會被清空。服務器

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

 

三者區別

1)存儲大小session

cookie:通常不超過4K(由於每次http請求都會攜帶cookie、因此cookie只適合保存很小的數據,如會話標識)性能

sessionStorage:5M或者更大網站

localStorage:5M或者更大接口

2)數據有效期事件

cookie:通常由服務器生成,能夠設置失效時間;若沒有設置時間,關閉瀏覽器cookie失效,若設置了時間,cookie就會存放在硬盤裏,過時才失效作用域

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

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:經常使用於長期登陸(判斷用戶是否已登陸),適合長期保存在本地的數據

相關文章
相關標籤/搜索