存储: 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 */