cookie

作者: jluemmmm | 来源:发表于2020-11-11 22:23 被阅读0次

    cookie 是服务端发送到浏览器并保存在本地的小块数据,会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。

    当服务端收到 HTTP 请求时,服务端在相应头里面添加一个Set-Cookie响应头,通过该响应头告知客户端保存 Cookie 信息

    Set-Cookie: <cookie名>=<cookie值>
    

    之后对服务器发起的每一次新请求,浏览器都会将之前保存的 Cookie信息通过该请求头再发送给服务器

    Cookie: yummy_cookie=choco;
    

    Cookie 的生命周期可以通过两种方式定义:

    • 会话期cookie:浏览器关闭后会被自动删除,不需要指定过期时间或者有效期
      Cookie 的生命周期可以通过两种方式定义:

    会话期 Cookie 是最简单的 Cookie:浏览器关闭之后它会被自动删除,也就是说它仅在会话期内有效。会话期Cookie不需要指定过期时间(Expires)或者有效期(Max-Age)。需要注意的是,有些浏览器提供了会话恢复功能,这种情况下即使关闭了浏览器,会话期Cookie 也会被保留下来,就好像浏览器从来没有关闭一样,这会导致 Cookie 的生命周期无限期延长。
    持久性 Cookie 的生命周期取决于过期时间(Expires)或有效期(Max-Age)指定的一段时间。

    cookie 主要用于以下三个方面

    • 会话状态管理(如用户登录状态、购物车或游戏分数等其他需要记录的信息)
    • 个性化设置(如用户自定义设置、主题等)
    • 浏览器行为跟踪(如跟踪分析用户行为等)

    Cookie 的过期时间、域、路径、有效期、适用站点都可以根据需要来指定。以下可选cookie属性值跟在键值对后,使用分号分隔

    • ;path=path (例如 '/', '/mydir') 如果没有定义,默认为当前文档位置的路径
    • ;domain=domain 如 'example.com'。如果指定了一个域,子域也包含在内。默认为当前文档位置的路径的域名部分。
    • ;max-age=max-age-in-seconds
    • ;expires=date-in-GMTString-format 如果没有定义,cookie会在对话结束时过期
    • ;secure cookie只通过 https 协议传输
    • cookie的值得字符串可以用 encodeURIComponent保证它不包含任何逗号、分号或空格

    相关文章

      网友评论

          本文标题:cookie

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