Cookie 、sessionStorage毅厚、 localStorage的異同
不同點:
cookie:大小4KB左右塞颁,它的主要用途有保存登錄信息试疙,比如你登錄某個網站市場可以看到“記住密碼”虹曙,這通常就是通過在 Cookie 中存入一段辨別用戶身份的數據來實現的。
sessionStorage:可以將一部分數據在當前會話中保存下來泵三,刷新頁面數據依舊存在咽安。但當頁面關閉后伴网,sessionStorage 中的數據就會被清空。
-
localStorage:localStorage 是 HTML5 標準中新加入的技術妆棒,它并不是什么劃時代的新東西澡腾。早在 IE 6 時代沸伏,就有一個叫 userData 的東西用于本地存儲,而當時考慮到瀏覽器兼容性动分,更通用的方案是使用 Flash毅糟。而如今,localStorage 被大多數瀏覽器所支持澜公,如果你的網站需要支持 IE6+姆另,那以 userData 作為你的 polyfill 的方案是種不錯的選擇。
image.png 應用場景
因為考慮到每個 HTTP 請求都會帶著 Cookie 的信息坟乾,所以 Cookie 當然是能精簡就精簡啦蜕青,比較常用的一個應用場景就是判斷用戶是否登錄。針對登錄過的用戶糊渊,服務器端會在他登錄時往 Cookie 中插入一段加密過的唯一辨識單一用戶的辨識碼右核,下次只要讀取這個值就可以判斷當前用戶是否登錄啦。曾經還使用 Cookie 來保存用戶在電商網站的購物車信息渺绒,如今有了 localStorage贺喝,似乎在這個方面也可以給 Cookie 放個假了~
而另一方面 localStorage 接替了 Cookie 管理購物車的工作,同時也能勝任其他一些工作宗兼。比如HTML5游戲通常會產生一些本地數據躏鱼,localStorage 也是非常適用的。如果遇到一些內容特別多的表單殷绍,為了優(yōu)化用戶體驗染苛,我們可能要把表單頁面拆分成多個子頁面,然后按步驟引導用戶填寫主到。這時候 sessionStorage 的作用就發(fā)揮出來了茶行。安全性的考慮
需要注意的是,不是什么數據都適合放在 Cookie登钥、localStorage 和 sessionStorage 中的畔师。使用它們的時候,需要時刻注意是否有代碼存在 XSS 注入的風險牧牢。因為只要打開控制臺看锉,你就隨意修改它們的值,也就是說如果你的網站中有 XSS 的風險塔鳍,它們就能對你的 localStorage 肆意妄為伯铣。所以千萬不要用它們存儲你系統(tǒng)中的敏感數據。