储存
有几种方式可以实现存储功能
-
cookie
-
localStorage
-
sessionStorage
-
indexDB
特性 | cookie | localStorage | sessionStorage | indexDB |
---|---|---|---|---|
数据声明周期 | 一般由服务器生成可以设置过期时间 | 除非手动清除,否则一直存在 | 页面关闭就清理 | 除非手动清除,否则一直存在 |
数据存储大小 | 4K | 5M | 5M | 无限 |
与服务端通信 | 每次都会携带再header中,对请求性能影响 | 不参与 | 不参与 | 不参与 |
用处 | 一般用于储存sessionID和token | 储存不易变动的数据,减轻服务器的压力 | 用来检测用户是否是刷新进入页面,如音乐播放器恢复播放进度条的功能 |
cookie安全性
属性 | 安全 |
---|---|
value | 用于保存用户登录状态,应该将该值加密,不使用文明用户标识 |
http-only | 不能通过JS访问cookie,减少XSS攻击 |
secure | 只能在协议为HTTPS的请求中携带 |
same-site | 规定浏览器不能在跨域请求中修改cookie,减少CSRF攻击 |