美文网首页
会话跟踪技术cookie简述以及localStorage简述

会话跟踪技术cookie简述以及localStorage简述

作者: lionlsc | 来源:发表于2018-09-01 15:59 被阅读0次

       会话跟踪是Web程序中常用的一种技术,用来跟踪用户的整个会话,常用的会话跟踪技术有Cookie与Session,Session一般用在服务器端,而Cookie一般使用在客户端,可以在客户端保存临时数据, 那这里我们要简单说说Cookie会话跟踪技术.

    Cookie的应用场景

       1 自动登录

        2电商购物车功能

        3 记录用户登录网址的次数

        4 商品浏览记录

    Cookie的使用方法

      在JavaScript语言中,我们使用document.cookie: 获取/设置Cookie

      格式为: name=value;[expires=过期时间];[path=访问路径];[domain=域名];[secure]

      如: document.cookie = "username=zhangsan;expires=-1;domain=baidu.com;path=/";

    Cookie的注意点

    cookie默认不会保存任何数据

    ②如果你要保存多条cookie只能分开设置,一次只能设置一条,不能在一条cookie里同时设置。

    cookie有个数和大小的限制

    转自https://blog.csdn.net/proglovercn/article/details/45514705

    cookie只能在同一个浏览器同一个路径下才能被访问到,其下级路径也能访问到,但是上一级不能访问到。

        如果想让所有路径都能访问,要在cookie里面添加"path=/";

    关于domain,如果我们在www.ncu.com保存了一个cookie,那么我们在edu.ncu.com是访问不到的,

         如果想要访问,需要添加”domain:ncu.com"

    Cookie的生命周期

    默认情况下是生命周期是一次会话(浏览器被关闭)

    可用expires设设置生命周期。

        eg:

               var date=new Date();

               date.setDate(date.getDate()+1);

                document.cookie="name=NCU;expires="+date.toGMTString();

    这样我们就设置好了一条cookie,你再次打开浏览器它还存在,它过了一天后才消失

    可以任意修改,如果将加一变为减一,cookie不会显示,可以用这种方法设置cookie的生命周期使其被删除。

    对Cookie进行封装

    无非就是CRUD

    添加cookie的封装

    function addCookie(key,value,day,path,domain) {

        //1.处理默认保存路径

        var index=window.location.pathname.lastIndexOf("/");

        var currentpath=window.location.pathname.slice(0,index);

        path=path||currentpath;    //如果没有传入路径就以默认路径为参数

    //2.处理默认保存的domain

        domain=domain||document.domain;

        //3处理默认时间

        if(!day){

              document.cookie=key+"="+value+";path="+path+";domain="+domain;//如果没有传入过期时间

        }

        else{

            var date=new Date();

            date.setDate(date.getDate()+day);

            var  tempday=date.toUTCString();

            document.cookie=key+"="+value+";expires="+tempday+";path="+path+";domain="+domain; //传入了过期时间

        }

    }

    addCookie

    ②查找某条cookie

    function getCookie(key) {

        var res=document.cookie.split(";");

        for (var i=0,len=res.length;i

    {

            var temp=res[i].split("=");

            if(temp[0].trim()==key)        //去除切割后产生的空格,便于查找

            {

              return temp[1];

    }

    }

    }

    getCookie

    ③删除某条cookie

    function deleteCookie(key,path) {

        //如果不传入path,只能删除默认路径下的cookie,而不能删除修改路径后的cookie,所有需要增加一个path参数

        addCookie(key,getCookie(key),-1,path);

    }

    deleteCookie

    这里再说一下localStorage;

    ①添加localStorage

    window.localStorage.setItem("name","kai");

    如果要用这个方法存储对象,必须用JSON.stringify方法;

    例如var obj={name:"kai"}

    var strObj=JSON.stringify(obj);

    window.localStorage.setItem("name",strObj);

    第个二参数为值,必须为字符串类型,如果传入对象而不转化成字符串,会丢失信息甚至无效。

    ②查看localStorage

    window.localStorage.getItem("name");

    ③删除localStorage

    window.localStorage.removeItem("name");

    相关文章

      网友评论

          本文标题:会话跟踪技术cookie简述以及localStorage简述

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