zoukankan      html  css  js  c++  java
  • Cookie基础知识

    cookie有9个属性:

    Name: cookie名
    Value: cookie值
    Domain: cookie的域。如果设成.test.com,那么子域名a.test.com和b.test.com,都可以使用.test.com的cookie
    Path: cookie的路径,一般设置成/即可
    Expires: cookie过期时间。不设置,则为Session会话期,关闭页面,cookie失效
    HttpOnly: 设置为true,则js读取不到cookie
    Secure: 标记为Secure的cookie,只能通过https请求发送
    SameSite: 限制第三方cookie。有3个值:Strict/Lax/None。chrome51新增,chrome80+强制执行

      Strict: 仅允许发送同站点请求的的cookie
      Lax: 允许部分第三方请求携带cookie,即导航到目标网址的get请求。包括超链接<a href='...' />,预加载<link rel="prerender" />和get表单<form method="GET" />三种形式发送cookie
      None: 任意发送cookie,设置为None,需要同时设置Secure,意味着网站必须采用https,若同时支持http和https,可以将http用307跳转到https

    Priority:优先级,chrome的提案,定义了三种优先级,Low/Medium/High,当cookie数量超出时,低优先级的cookie会被优先清除

    cookie读写脚本

    function getCookie(key){
        let cookies = document.cookie ? document.cookie.split('; ') : [];
        let i=0;
        let l=cookies.length;
        for(;i<l;i++){
            let entry = cookies[i].split('=');
            if(entry[0] == key){
                return entry[1];
            }
        }
        return null;
    }
    
    function setCookie(key,value,opts){
        if (typeof opts.expires === 'number') {
            var days = opts.expires, 
                t = opts.expires = new Date();
            t.setMilliseconds(t.getMilliseconds() + days * 864e5);
        }
    
        return (document.cookie = [
            encode(key), '=', String(value),
            opts.expires ? '; expires=' + opts.expires.toUTCString() : '',
            opts.path    ? '; path=' + opts.path : '',
            opts.domain  ? '; domain=' + opts.domain : '',
            opts.secure  ? '; secure' : ''
        ].join(''));
    }
    
    function removeCookie(key){
        setCookie(key,'',{expires:-1});
        return !getCookie(key);
    }
    
    function encode(key){
        return encodeURIComponent(key);
    }
  • 相关阅读:
    Spring实现AOP的4种方式(转)
    【转】一个不错的eclipse反编译插件
    spring配置事务
    使用XFire+Spring构建Web Service(一)——helloWorld篇
    WebService到底是什么?(转)
    ContextLoaderListener作用详解(转)
    SVN检出资源文件
    ExtJS4.2学习(21)动态菜单与表格数据展示操作总结篇2
    WP8_当滚动到滚动条的70%时,自动加载数据效果实现
    WP8__从windowsphone app store 中根据app id获取应用的相关信息(下载网址及图片id等)
  • 原文地址:https://www.cnblogs.com/mengff/p/12836456.html
Copyright © 2011-2022 走看看