美文网首页
cookie & session &localStorage

cookie & session &localStorage

作者: 清苑折纸 | 来源:发表于2019-06-01 16:19 被阅读0次

    cookie

    cookie用来存储web页面的用户信息,一般最大容量为4k。其作用就是解决“如何记录客户端的用户信息”,以键值对的形式存储在电脑上的文本文件中。当浏览器从服务器上请求web页面时,属于该页面的cookie也会被添加到请求当中。
    使用document.cookie="键=值"的形式创建

    • expires为过期时间
    • maxAge 是 cookie 多久后过期的相对时间
      (不设置这两个选项时会产生 session cookie,session cookie 是 transient 的,当用户关闭浏览器时,就被清除。一般用来保存 session 的 session_id)
    • path为cookie路径,默认属于当前页面
    • secure:当 secure 值为 true 时,cookie 在 HTTP 中是无效,在 HTTPS 中才有效
    • 浏览器不允许脚本操作 document.cookie 去更改 cookie。一般情况下都应该设置这个为 true,这样可以避免被 xss 攻击拿到cookie

    session

    记录客户状态的机制,在一定时间内保存在服务器上,没有大小限制。session在实现的过程中需要使用到cookie。

    实现过程
    • 在服务器端生成全局唯一标识符session_id;
    • 在服务器内存里开辟此session_id对应的数据存储空间;
    • 将session_id作为全局唯一标示符通过cookie发送给客户端;
    • 以后客户端再次访问服务器时会把session_id通过请求头中的cookie发送给服务器;
    • 服务器再通过session_id把此标识符在服务器端的数据取出
    • 如果客户端的浏览器禁用了 Cookie 怎么办?一般这种情况下,会使用一种叫做URL重写的技术来进行会话跟踪,即每次HTTP交互,URL后面都会被附加上

    localStorage

    用于将大量数据(最大5M)保存在浏览器中,保存后数据永远存在不会失效过期,除非用 js手动清除。一般用于性能优化,可以保存图片、js、css、html 模板、大量数据。localStorage键值对总是以字符串的形式存储。

    相关文章

      网友评论

          本文标题:cookie & session &localStorage

          本文链接:https://www.haomeiwen.com/subject/piratctx.html