cookie

1.cookie 的特点:

  a: 大小限制:不超过4k

  b: 每个域下cookie不能超过50个

  c: 有效期(和设定时间有关),过了有效时间cookie自动删除;

  d: cookie的读取,只能访问同一个域名下的cookie(eg:localhost )-----“域的限制!”;

  e: 没有设置存储时间的cookie是临时cookie,浏览器关闭将自动删除;

  f: cookie值只能是字符串;

2.cookie和前后端的关系:

  当一个请求发起的时候,如果cookie空间中有cookie内容(cookie存在),那么在当前请求中的请求头里将携带cookie的内容传到后端。如果在后端设置了cookie,同样在留来其中也可以显示。

3.cookie的读取:

  document.cookie(控制台打印输出)

4.cookie的设置:

  document.cookie=“name=ggg”

5.前端设置cookie:

  document.cookie=“属性=属性值”  ----不带时间的为临时cookie;

  document.cookie=“属性=属性值;expires=时间”  ---带有时间的cookie;

6.cookie的访问:

  子文件里面能访问父文件里面的cookie,但是父文件的cookie不能在子文件访问;(好比学生可以无限制的坑爹,但是爹不能坑儿子!!!)

6.cookie的完美设置:

document.cookie=“属性=属性值;path=/;expires=时间.toGMTString()”;---- .toGMTString()是格林尼时间,意思就是在世界各个地方都可以访问。

7.cookie的封装:

******设置cookie*****

    // 设置cookie;
    function setcookie(cookiename,cookieval,expires){
        //创建一个时间;
        let d=new Date();
        //设置cookie的有效期;
        d.setDate(d.getDate()+parseInt(expires));
        //设置cookie的名字和cookie值;
        document.cookie=cookiename+'='+cookieval+';path=/;expires='+ d.toGMTString();
    }    
    // setcookie('kka','90',1);



//读取cookie;
    function getCookie(cookiename) {
            let all = document.cookie;
            //字符串转成数组;
            let arr = all.split('; ');    //此处必须是  ; 空格 ,即分号后面必须有空格!!!!
            //循环遍历每一项;
            for (let i = 0, k = arr.length; i < k; i++) {    //i  后面的 分号 !!!!
                let arrTemp = arr[i].split('=');
                //判断cookiename和arrTemp第一项作对比;如果相等取出即可;
                if (cookiename == arrTemp[0]) {
                    return arrTemp[1];
                }
            }
        }
    // console.log(getCookie('kka'))





    删除cookie;
    cookie不能进行删除,只能让其过期失效,给其设置一个过期时间即可;
    function removeCookie(cookiename){
        setcookie(cookiename,null,-10)
    }
    removeCookie('kka','goods','aaa')

8.cookie的应用:

a:免登录;

b:电商平台购物车

原文地址:https://www.cnblogs.com/gzw-23/p/11741719.html