cookie-会话跟踪技术(客户端)

cookie:可以将一些数据存储在用户客户端本地,默认情况下,一个网页是没有任何cookie信息的。

cookie以名/值对形式存储。形式:username = Danny
当浏览器从服务器上请求web页面时,属性该页面的cookie会被添加到该请求中。服务端通过这种方式来获取用户的信息。

注意点:

1.cookie作用范围:一次会话(即浏览器被关闭后,cookie不存在)

2.cookie不能跨浏览器(即在IE中存储中的cookie不能在谷歌中使用)

3.cookie不能跨域(作用域 域名)

eg:http://www.baidu.com:80/a.html
协议://二级域名.一级域名:端口号/资源地址

cookie:必须协议相同/二级域名相同/一级域名相同/端口号相同
如果其中有一个不同,那么cookie都不可以共用

4.一个网页可以设置多个cookie

但每个网页的cookie个数是有限制的(40个左右),每个网站的cookie也是有限制的(200个左右)

5.不能一次性设置多个cookie,要设置多个,必须分开设置

6.可以通过expires = xxx格式来设置过期时间

如果过期时间大于当前时间,则有效;
如果过期时间小于当前时间,则会自动失效

如果cookie是有效的,那么浏览器关闭之后再打开还是有效的

7.由于cookie的数据可以在浏览器中查找到,所以不要将一些敏感的信息保存到cookie中


以下是对cookie方法的封装

  //1.添加cookie
    function addCookie(key,value,expires){
        if(arguments.length == 2){
            document.cookie = key+"="+value+"; ";
        }else if(arguments.length == 3){
            var date = new Date();
            date.setDate(date.getDate() + expires);
            document.cookie = key+"="+value+"; expires="+date+"; ";
        }
    }

 //2.获取指定cookie的值
    function getCookie(key){
        var arr = document.cookie.split("; ");
        for(var i = 0, len = arr.length; i < len; i++){
            var subArr = arr[i].split("=");
            if(subArr[0] == key)
                return subArr[1];
        }
    }

//3.删除cookie
    function deleteCookie(key){
        addCookie(key,getCookie(key),-1);
    }

你可能感兴趣的:(cookie-会话跟踪技术(客户端))