前端数据存储方式之简单总结

291 阅读1分钟
1.特征
特征cookielocalStoragesessionStorageIndexedDB
生命周期一般由服务器生成,可以设置过期时间除非被清理,否则一直存在仅在当前会话有效除非被清理,否则一直存在
存储大小4K5-10M(各家浏览器不同)5-10M(各家浏览器不同)不少于 250MB
与服务端通信每次都会携带在 header 中,对于请求性能影响不参与不参与不参与
2.使用场景

cookie:在浏览器中保存少量信息,常用来保存状态,会话信息等.如用户登录态相关数据.使用时要注意安全性

localStorage:由于生命周期是永久的,适合保存需要长期存储在本地的数据.

sessionStorage:由于仅在当前会话中有效,保存不需要长期保存的数据.

IndexedDB:通俗地说,IndexedDB 就是浏览器提供的本地数据库.可以存储不适合使用以上三种方式存储的大量数据.

3.cookie的常见属性

value: 如果用于保存用户登录态,应该将该值加密,不能使用明文的用户标识

http-only: 不能通过 JS 访问 Cookie,减少 XSS 攻击

secure: 只能在协议为 HTTPS 的请求中携带

same-site: 规定浏览器不能在跨域请求中携带 Cookie,减少 CSRF 攻击

Expires: 过期时间(秒),在设置的某个时间点后该 Cookie 就会失效,如 expires=Money, 05-Dec-11 11:11:11 GMT

domain: 字段为可以访问此cookie的域名。

path: 字段为可以访问此cookie的页面路径。 比如domain是abc.com,path是/test,那么只有/test路径下的页面可以读取此cookie。