缓存 https://blog.csdn.net/qq_38719039/article/details/79977474
Cookie
Cookie时以键值对的形式保存的,每个cookie间一般是以”;”分隔。
它是浏览器提供的一种机制。将document的cookie属性提供给javascript使用。Cookie是存于用户硬盘的一个文件。
这个文件通常对应一个域名。当浏览器访问这个域名时,此cookie便可使用。因此,cookie可以跨越一个域名下的多个网页 ,但不能跨越多个域名使用。
用途:
- 作为全局变量。每个http request自动携带cookie内容,一般用于用户会话
- 存用户登录状态,跟踪用户行为
- 定制页面,创建购物车,例如淘宝网使用cookie记录用户浏览记录,方便随时进行比较
缺点:
- cookie可能被禁用,当用户非常注重个人隐私保护时,他很可能禁用浏览器cookie功能。
- cookie是与浏览器相关的。不同浏览器之间的cookie不能相互访问。
- cookie存储为本地文件,它可能被删除
- cookie安全性不高。保存用户敏感信息时,需要加密存储
- 大小限制为4K
安全机制:
域名加路径隔离 httponly,secure。
缺陷:
不按照端口隔离,不能预防CSRF攻击。Chrome新增了一个SameSite属性,可以用于预防CSRF
Local storage/session storage
Local storage
localStorage为H5新特性。本地以键值对存储(不支持索引) 一般为5MB
安全机制:
协议域名加端口隔离,隐私模式不能使用
缺陷:
localstorage生命周期永久
优势:
- localStorage拓展了cookie的大小限制。4K扩展为5M
- localStorage会可以将第一次请求的数据直接存储到本地。这相当于5M的前端DB。
局限:
- 浏览器的大小不统一。并且在IE8以上 才支持localStorage
- 目前所有的浏览器中都以String类型存储。
- localStorage 在浏览器隐私模式下面的是不可读取的。
- localStorage本质上是对字符串的读取,如果存储内容多的话 会消耗内存空间,
- localStorage不能被爬虫抓取到
sessionStorage
用于本地存储一个会话中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。
localStorage与sessionStorage的唯一区别是:sessionStorage生命周期绑定到会话中,会话结束则sessionStorage中的键值则被清空。
https://www.jianshu.com/p/256d0873c398
indexDB\WEBDB
indexDB 本地NoSQl数据库(异步,有索引) 协议域名加端口隔离
缺陷:生命周期永久