Cookie简述

作者: WlSE | 来源:发表于2019-07-01 10:13 被阅读0次

    本文是对 阮一峰Cookie的简述

    概述

    是服务器保存在浏览器的一小段信息, 有了Cookie , 浏览器在每次向服务器发送请求的时候, 会自动附带上这一段信息.

    Cookie包含的信息

    1. Cookie的名字
    2. Cookie的值
    3. 到期时间
    4. 所属域名(默认当前域名)
    5. 生效路径(默认当前网址)

    服务器的设置

    Cookie由HTTP协议生成, 服务器希望在浏览器中保存Cookie, 就要在HTTP回应的头信息里面:

    Set-Cookie: foo=bar, 保存多条需要设置多行的Set-Cookie

    此外Set-Cookie还可以附加Cookie的属性:(属性不区分顺序)

    Cookie的属性

    Set-Cookie: <cookie-name>=<cookie-value>; Expires=<date>
    Set-Cookie: <cookie-name>=<cookie-value>; Max-Age=<non-zero-digit>
    Set-Cookie: <cookie-name>=<cookie-value>; Domain=<domain-value>
    Set-Cookie: <cookie-name>=<cookie-value>; Path=<path-value>
    Set-Cookie: <cookie-name>=<cookie-value>; Secure
    Set-Cookie: <cookie-name>=<cookie-value>; HttpOnly
    

    Expires, Max-Age

    Expires指定具体的到期时间, 到期后浏览器不在保留这个Cookie. 值为UTC格式, 可以使用 Date.prototype.toUTCString()进行格式转换, 如果没有设置浏览器会在关闭时删除Cookie.

    Max-Age指定从现在开始 Cookie 存在的秒数, 过了这个秒数就不在保留

    如果同时设置了 Expires 和 Max-Age , 则 Max-Age的优先级更高.

    Domain, Path

    Domain属性是 指定浏览器发送HTTP请求时, 那个域名要附带这个Cookie ,如果没有指定 则 默认是 当前URL的以及域名, 其后的子域名都会带上, 设置的时候 不属于当前域名, 浏览器会拒绝.

    Path属性如果保存的生效路径是 /xxx, 则只对 访问/xxx和其之后的生效 ,前提是 域名一致

    Secure, HttpOnly

    Secure 属性 指定浏览器只有在 HTTPS下 才会把 Cookie 发送到服务器 ,如果 当前是 HTTP协议, 浏览器会忽略 服务器发来的 Secure属性. 这个属性 是一个开关不需要指定值.

    HttpOnly指定该Cookie 无法通过 JavaScript脚本拿到, 主要是Document.cookie属性、XMLHttpRequest对象和 Request API 都拿不到该属性.

    获取Cookie

    **用 windownavgator.cookieEnabled判断浏览器是否打开Cookie功能 **

    document.cookie获取当前页面的Cookie

    删除Cookie

    设置 Cookie 的 expires 属性 为一个 过去的日期

    document.cookie = 'fontSize=;expires=Thu, 01-Jan-1970 00:00:01 GMT';

    相关文章

      网友评论

        本文标题:Cookie简述

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