zoukankan      html  css  js  c++  java
  • cookie

    1.cookie的概念

    cookie(会话跟踪技术),相当于第一次跟服务器连接后,服务器给你发的一个身份牌,上面可以记录跟你有关的信息(是否登录,购物车等等信息),以后只要再跟服务器通信,必须带着这个令牌,这样一来,服务器会直接知道你身份牌上所有的信息。

     cookie存在浏览器的缓存中。
     什么是缓存?数据交换的缓冲区----临时储存
     
    2.cookie的特点
    1.只能使用文本文件(如果浏览器可以随意在客户端机器生成文件,比如身份令牌,那将是个定时炸弹,安全问题会变得非常严重)
     
    2.文件有大小限制4K(文件若没有大小限制,相当于身份令牌重几百斤,挂在脖子上什么感觉?)
     
    3.数量限制,小于50条(一般浏览器限制大概在50条左右,门禁卡里能存下一部蓝光高清么)
     
    4.读取有域名限制(不可跨域读取,只能由写入cookie的 同一域名 的网页进行读取。简单来说,谁写的cookie,谁才有权利读取)
     
    5.时效限制(每个cookie有时效,最短的有效期是:会话级别(关闭浏览器,cookie销毁);
    2.cookie的使用
      设置
            会话级默认路径:
            document.cookie = "name=abc"
            cookie的格式要求,名称=值
            在cookie 的名或值 中 不能使用分号(;)、逗号(,)、等号(=)以及空格这是cookie的赋值规则
            
            指定有效期:
            设置cookie的保存时间,通过给expires添加一个日期,设置cookie的过期时间
            此处可以借用Date();
            var date = new Date();
            date.setDate(date.getDate()+28);
            表示获取当前日期的天数,增加28天之后,重新设置给日期,此时date就表示未来的某个时间
     
            document.cookie = "name=abc;expires=" + date;
            此句表示,此条cookie在date的时间时效,而date的时间为当前日期加上28,也就是28天之后cookie失效
            
            指定路径:
            document.cookie = "user=admin;path=/;expires="+d;
     
        获取
            var str = document.cookie;
            str返回当前cookie的值,以字符串的形式
        
        删除
            删除cookie,相当于将cookie的有效时间设置为负。
    3.cookie的封装
      设置
     function setCookie(key,value,options){
          options = options ||{};
          var path = options.path?";path="+options.path:"";
          var exp="";
          if(options.expires){
              var d =new Date();
              d.setDate(d.getDate()+options.expires)
              exp = ";expires = "+d;
          }
          document.cookie = `${key}=${value}${exp}${path}`
      }
    setCookie("a","1");
      setCookie("b","2",{});
      setCookie("c","3",{path:"/"});
      setCookie("d","4",{ expires: 3,});
      setCookie("e","5",{ expires: 3,path:"/"})

    删除

    function removeCookie(key,options){
        options = options ||{};
        options.expires = -1;
       setCookie(key,null,options);
    }
    removeCookie("c",)

    获取

    function getCookie(key){
        var cookie=document.cookie;
       var arr = cookie.split("; ");
       for(var i=0;i<arr.length;i++){
           if(arr[i].split("=")[0] == key){
               return (arr[i].split("=")[1])
           }
       }
      return "";
    }
    console.log(getCookie("a"))
  • 相关阅读:
    遍历文件夹与文件
    HMM&CRF
    获取js代码运行的时间
    小程序canvas绘制纯色圆角区域 setdata数组某一项
    layui type:2 iframe子页面向父页面传值
    layui 时间插件,change&&done,按照官网写法无效,解决方式!
    doT.js模板用法
    css画叉叉(一般用于关闭按钮)
    js复制文本到剪贴板
    node之module与fs文件系统
  • 原文地址:https://www.cnblogs.com/zl-light/p/11782515.html
Copyright © 2011-2022 走看看