存储:
1.本地存储(存储在客户端)
cookie(饼干)
localStorage(本地仓库):主要使用 微信小程序 、 移动端、App端
websql
2.离线缓存(在线状态进行缓存,离线状态依然可以使用)
3.服务器端存储
session(会话)
举例说明:
1.网页中登录过了,下次(网页刷新,浏览器重新)不需要登录,是因为记住了登录信息
原因:http 协议是一种无状态协议(没有办法直接带有用户访问的身份信息)。
一般常见存储:session 与 cookie ,在h5之后 localStorage ,离线缓存
session 与 cookie 的区别:
1.cookie 存储在客户端
2.cookie可以设置生存周期(存活的时间),如果没有设置存活时间,一般浏览器关闭销毁
3.每一次http请求都会将cookie 发送给对应的服务器端
4.【不太安全,存储的信息绝对不会太高的机密性,或者会加密存储】因存储在客户端,
只要访问的页面被植入恶意脚本,容易被劫持cookie(xss攻击)
5.每个浏览器大概能存储300多个cookie ,每个网站站点最多存储20个 ,每个cookie存储的最大数据量为 4KB
6.每个站点的脚本通常只能访问自己的cookie ,但也存在恶意读取(xss攻击)的风险
1.session 存储在服务器端(前端没有办法直接操作,如果后端提供接口是可以实现间接操作)
2.安全性能比cookie 高
3.session会话 ,会在用户关闭浏览器自动销毁,可以存储机密性更高的信息
4.后台可以设置会话停留时间,如果长时间没有进行交互行为 ,那么是可以设置会话结束。
使用场景:
cookie 可以存储少量的非机密,敏感信息,用户名,用户标识(token令牌)
session: 可以靠性高,一般用于存储用户标识等这些安全性要求高,非永久信息
localStorage(本地仓库):
1.可以存储大量的数据
2.永久存储,除非主动清除
3.不会随http请求发送给服务器
4.安全性能比cookie 要高
使用场景:1.存储用户基本数据标识
2.可以存储:图片(base64编码)、html、js、css样式等数据(做前端优化)
Cookie存储的使用介绍:
// cookie 是在document 对象上的属性 ,其实就是存储着一大串的字符串内容 //键名=键值 //expires:如果没有设置存活周期,一般会出现一个过期的时间,标识浏览器关闭自动销毁 //path 存储路径,如果"/" 则为根目录,有点类似全局变量 // cookie 存储一般字符串,如果存储的是对象类型数据需要转成字符串 //domin 设置存储的域名
localStorage存储的使用介绍:
/** * localStorage 本地存储 ,存储在本地(H5新增),可以理解为cookie的plus 版。 * 可以存储大量的数据 * 常用的方法: * clear()清空,所有记录 * getItem() 获取指定的键名的值 * removeItem()删除指定键名的记录 * setItem() 设置新增记录 * key(index) ,获取指定索引值的键名 * * 属性:length 存储的记录数量 * * 事件:storage */