美文网首页
Cookie相关

Cookie相关

作者: 无米学炊 | 来源:发表于2019-04-20 19:42 被阅读0次

    设置Cookie

    使用document.cookie与Server端 set-cookie字段区别:

    字段名称 document.cookie set-cookie 备注
    expires document.cookie只支持 Data.toUTCString() 形式
    max-age max-age优先级比 expires高
    domain
    path
    secure
    httpOnly
    SameSite 不随跨域请求发送,防止csrf

    设置cookie方式:

    1. docuemnt.cookie:
    document.cookie="token=xxxx"
    document.cookie="a=xx"
    
    1. set-cookie:
    Set-cookie: token=xxxx
    Set-cookie: a=xx
    

    删除一个cookie

    cookie应该使用 Domain + Name + Path来唯一标识的。cookie本身只是一个字符集合,并没有提供删除的api,如果想要删除,可以巧用过期时间。例如删除当前域名下的 path为/ 同时Name为 a的cookie:

    document.cookie = 'a=1;expires=Thu, 01 Jan 1970 00:00:00 GMT' // 时间需要时 Date().toUTCString()格式,通用的1970-01-01不识别
    

    同理如果需要删除path为其他域名的,需要指定path

    document.cookie="a=2;path=/qr;expires=Thu, 01 Jan 1970 00:00:00 GMT" // 指定path为 /qr
    

    在最新的chrome下面使用 max-age也是可以删除的

    document.cookie='a=1;max-age=-1'
    

    如果删除不了,请设置domain!!!

    浏览器对Cookie的限制

    基于chrome的测试

    每一个cookie的大小4KB,此处现在应该是document.cookie值的总长度限制;
    如果一个cookie超过4kb执行不报错,但是会设置不成功
    同理对于 set-cookie也是一样大道理

    基于Firefox的测试

    每一个cookie的大小为4KB,但是不会包含 = 和选项的大小

    具体可以通过 http://browsercookielimits.squawky.net/ 进行测试

    参考文档

    1. MDN Document.Cookie
    2. MDN Set-Cookie

    相关文章

      网友评论

          本文标题:Cookie相关

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