H5的storage有sessionstorage&localStorage,其中他們的共同特點是API相同
下面直接上代碼,storage中的存儲與刪除:
而 cookie localStorage sessionStorage 區別
1、cookie
在客戶端記錄信息確定用戶身份。
由於HTTP是一種無狀態的協議,服務器單從網絡連接上無從知道客戶身份。就給客戶端們頒發一個通行證,每人一個,無論誰訪問都必須攜帶自己通行證。這樣服務器就能從通行證上確認客戶身份了。這就是Cookie的工作原理。
客戶端發送一個http請求到服務器端
服務器端發送一個http響應到客戶端,其中包含Set-Cookie頭部
客戶端發送一個http請求到服務器端,其中包含Cookie頭部
服務器端發送一個http響應到客戶端
2、localStorage
localStorage 是 HTML5 標准中新加入的技術,規則事先已經設定好了,要訪問同一個localStorage對象,頁面必須來自同一個域名,子域名無效,使用同一種協議,在同一個端口,數據會保留到通過js刪除或者用戶刪除瀏覽器緩存。
3、sessionStorage
sessionStorage 與 localStorage 的接口類似,但保存數據的生命周期與 localStorage 不同。可以將一部分數據在當前會話中保存下來,刷新頁面數據依舊存在。但當頁面關閉后,sessionStorage 中的數據就會被清空。
4、三者對比
特性 Cookie localStorage sessionStorage
存放位置
瀏覽器端
瀏覽器端
瀏覽器端
數據的生命期 可設置失效時間,默認是關閉瀏覽器后失效 除非被清除,否則永久保存 僅在當前會話下有效,關閉頁面或瀏覽器后被清除
存放數據大小 4K左右 一般為5MB 一般為5MB
作用域z
同源窗口中共享
同源窗口中共享
不可在不同瀏覽器窗口中共享
與服務器端通信 每次都會攜帶在HTTP頭中,如果使用cookie保存過多數據會帶來性能問題。(服務器與客戶端可互傳) 僅在客戶端(即瀏覽器)中保存,不參與和服務器的通信 僅在客戶端(即瀏覽器)中保存,不參與和服務器的通信