基本概念
cookie是往返于客戶端與服務(wù)端的一小段存儲信息,由響應(yīng)頭的Set-cookie設(shè)置臂拓,客戶端瀏覽器在接收到響應(yīng)之后就會在cookie中存儲配置信息與數(shù)據(jù),并且在向服務(wù)端發(fā)起請求的時候都會在請求頭中帶上這一段cookie傳給服務(wù)端兴猩。
cookie的屬性
LocalStorage是WebStorage的一種煌张,可以在瀏覽器中長期保存的一種本地存儲類型,除非被清除娃豹,或者設(shè)定的過期時間到了猜惋,否則會一直保存在瀏覽器中
SessionStorage是另一種WebStorage,但是保存數(shù)據(jù)的周期與LocalStorage不同培愁,他只是可以將數(shù)據(jù)在當(dāng)前會話中保存下來,刷新頁面數(shù)據(jù)依舊存在缓窜,但是當(dāng)頁面關(guān)閉之后定续,SessionStorage中的數(shù)據(jù)就會被清空
三者的異同
Cookie | localStorage | sessionStorage | |
---|---|---|---|
數(shù)據(jù)的生命期 | 一般由服務(wù)器生成谍咆,可設(shè)置失效時間。如果在瀏覽器端生成Cookie私股,默認(rèn)是關(guān)閉瀏覽器后失效 | 除非被清除摹察,否則永久保存 | 僅在當(dāng)前會話下有效,關(guān)閉頁面或瀏覽器后被清除 |
存放數(shù)據(jù)大小 | 4K左右 | 一般為5MB | 一般為5MB |
與服務(wù)器端通信 | 每次都會攜帶在HTTP頭中倡鲸,如果使用cookie保存過多數(shù)據(jù)會帶來性能問題 | 僅在客戶端(即瀏覽器)中保存供嚎,不參與和服務(wù)器的通信 | 僅在客戶端(即瀏覽器)中保存,不參與和服務(wù)器的通信 |
易用性 | 需要程序員自己封裝峭状,源生的Cookie接口不友好 | 源生接口可以接受克滴,亦可再次封裝來對Object和Array有更好的支持 | 源生接口可以接受,亦可再次封裝來對Object和Array有更好的支持 |
學(xué)習(xí)鏈接:DOM總結(jié):數(shù)據(jù)存儲(cookie优床,storage) - 知乎 (zhihu.com)