web前端 关于Cookie那些事

关于Cookie那些事

1 什么是cookie?

Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息

2 如何设置Cookie?

 直接上代码..........
function setCookie(key,value,expire_seconds)
{
    var exp=new Date();
    exp.setTime(exp.getTime() + expire_seconds * 1000); 
    //escape函数可以将部分字符串进行转义
    if(typeof window !== "undefined" ){
        document.cookie=key+ "=" +escape(value)+
    ((expire_seconds==null) ? "" : ";expires="+exp.toGMTString());  
    //toGMTString() 返回字符串,此日期会在转换为字符串之前由本地时区转换为 GMT格林时区。        
    } 

}

 function getCookie(key)
{
    if(typeof window !== "undefined" ){
        if (document.cookie.length>0)
      {
          let c_start=document.cookie.indexOf(key + "=");
          //indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
          if (c_start!=-1)
            { 
            c_start=c_start + key.length+1 ;
            //比方整个cookie是"user=enson;passwd=user123",key=user,这时候c_start获取的是"="的位置
            let c_end=document.cookie.indexOf(";",c_start);
            if (c_end==-1) c_end=document.cookie.length;
            return unescape(document.cookie.substring(c_start,c_end));
            } 
      }
    return "";
    }   
}

export function removeCookie(key){
    setCookie(key,"", -1);
}

关于Cookie的一些参数

  • name 这是每一个Cookie必须有的元素,它是该Cookie的名字。name元素是一个不含分号、逗号和空格的字符串。其命名方式与变量命名相同。

  • value也是每个Cookie必须有的元素,它是该Cookie的值。value元素是实际存放于Cookie中的信息。它是由任何字符构成的字符串。

  • expires是一个Cookie的过期时间。没有设置expires元素的Cookie在用户断开连接后过期,但在用户关闭浏览器之前Cookie依然存在。Cookie有一个过期时间并等于它会从Cookie.txt文件中被删除。在它的位置被用来存放另一个Cookie前,它依然存在着。过期的Cookie只是不被送往要求使用它的服务器。expire是一个串,它的形式如下:Wdy, DD-Mon-YY HH:MM:SS GMTexpires元素是可选的。

  • domain是设置某个Cookie的Web网页所在的计算机的域名。这样,由一个站点创建的Cookie不会影响到另一个站点上的程序。demain元素自动地被设为网页所在站点的基本域名。
    abc

    • 比如,你的网页位于http://www.abc.com,则该网页创建的Cookie缺省地对域abc.com有效。如果你希望你的Cookie 只应用于服务器www3.abc.com,那么你必须在设置Cookie的时候指定。只有拥有域名的站点才能为那个域名设置Cookie。
  • path 一个Cookie可以被指定为只针对一个站点的某一层次。如果一个Web站点要区分已注册的和未注册的客户,就可以为已经注册的客户设置Cookie,

    • 当注册过的客户访问该站点时,他就可以访问到只对注册客户有效的页面。path是可选项,如果没有指定path,将被缺省地设置为设置Cookie的页面的路径。
  • secure标志 secure是一个布尔值(真或假)。它的缺省值为假。如果它被设为真值, 这个Cookie只被浏览器认为是安全的服务器所记住

猜你喜欢

转载自blog.csdn.net/chen_enson_1/article/details/81387988