H5存储

存储:

    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
 */