9-说说cookie,localStorage和session
本文最后更新于:2021年2月17日 下午
问题
请问cookie,localStorage,sessionStorage的区别?
概念
cookie:cookie是HTML4中使用的给客户端保存数据的。可以和session配合实现用户身份识别,比如区别vip用户和普通用户。
webStorage: 包括localStorage
和sessionStorage
。webStorage是HTML5中提出的内容。存粹为了保存数据,不会与服务器端进行通信
区别
1.相同点
都是在客户端保存数据
都是以字符串形式存放
2.不同点
生命周期
cookie:可以设置有效期(
Expires
或Max-Age
)。若不设置,默认是会话级别的临时存储(存放在内存),关闭浏览器就失效。设置后则存放在硬盘中,时间到了就失效。需要注意的是,有些浏览器提供了会话恢复功能,这种情况下即使关闭了浏览器,会话期Cookie 也会被保留下来,就好像浏览器从来没有关闭一样,这会导致 Cookie 的生命周期无限期延长
提示:当Cookie的过期时间被设定时,设定的日期和时间只与客户端相关,而不是服务端。
sessionStorage : 允许你访问一个对应当前源的会话存储(session
Storage
)对象。数据在页面会话结束时会被清除,也就是关闭窗口后就被销毁。localStorage: 类似sessionStorage,但其区别在于:存储在
localStorage
的数据可以长期保留,窗口或浏览器关闭后数据不会丢失。
网络流量
cookie的数据每次都会发给服务器端,而webStorage不会与服务器端通信,纯粹为了保存数据,所以webstorage更节省带宽。
大小限制
cookie:限制在4KB内
webStorage:限制在5M
安全性
WebStorage不会随着HTTP header发送到服务器端,所以安全性相对于cookie来说比较高一些,不会担心截获(即便是https也无法保护由服务端传给客户端的数据)
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!