cookie

作者: MC丶逗逼嘿 | 来源:发表于2017-09-29 09:13 被阅读0次

    什么是cookie?

    简单地说,cookie 就是浏览器储存在用户电脑上的一小段文本文件。cookie 是纯文本格式,不包含任何可执行的代码。一个 Web 页面或服务器告知浏览器按照一定规范来储存这些信息,并在随后的请求中将这些信息发送至服务器,Web 服务器就可以使用这些信息来识别不同的用户。大多数需要登录的网站在用户验证成功之后都会设置一个 cookie,只要这个 cookie 存在并可以,用户就可以自由浏览这个网站的任意页面。再次说明,cookie 只包含数据,就其本身而言并不有害。

    cookie的使用场景

    用户在请求网站的时候服务器会返回cookie信息到浏览器,浏览器得到cookie 信息以后会保存起来;以后访问我们的站点都是把我们保存好的cookie信息通过头信息的方式发送给服务端,那么服务端得到cookie信息以后就可以验证我们是否是登录状态。

    cookie的特性

    1,不同的浏览器存放的cookie位置不一样,也是不能通用的;也就是说你在firefox下设置的cookie,在chrome下是无法访问到的;

    2,cookie的存储是以域名的形式进行区分的;

    3,一个域名下存放的cookie的个数是有限制的,不同的浏览器存放的个数不一样;

    4,每个cookie存放的内容大小也是有限制的,不同浏览器存放大小不一样;

    5,由于在HTTP请求中的cookie是明文传递的,所以安全性成问题。(除非用HTTPS);

    6,Cookie的大小限制在4KB左右。对于复杂的存储需求来说是不够用的;

    7,cookie会被附加在每个HTTP请求中,所以无形中增加了流量;

    Cookie的使用

    1,设置Cookie:

    document.cookie = '1701H=41'; //默认关闭浏览器进程Cookie消失

    2,获取Cookie:

    document.cookie;

    3,设置Cookie过期时间,时间必须是字符串格式(兼容IE):

    var oDate = new Date();

    oDate.setDate(oDate.getDate() + 5);

    document.cookie = '1701H = 41人;expires = ' + oDate.toGMTString();

    4,内容最好以encodeURI编码存放:

    document.cookie = '1701H = ' + encodeURI('41人');

    5,解码Cookie:

    decodeURI(document.cookie)

    Cookie常用封装方法

    1,设置Cookie:

    其实自我感觉设置Cookie就是创建一个对象,将需要放进Cookie的内容转为Cookie对象,代码如下

    function setCookie(key, val, t) {

    var oDate = new Date();

    oDate.setDate(oDate.getDate() + t);

    document.cookie = key + '=' + val + ';expires=' + oDate.toGMTString();

    }

    2,获取Cookie:

    获取其实很简单,我们获取Cookie的时候获取的是一段包含所有Cookie的字符串,但是只是字符串的话还是没有办法取值的

    方法很简单只要我们将他们转为数组就行了

    function getCookie(key) {

    var arr1 = document.cookie.split('; ');

    for(var i=0; i<arr1.length;i++){

    var arr2 = arr1[i].split('=');

    for(var j=0;j<arr2.length;j++)

    if(arr2[0] == key) {

    return decodeURI(arr2[1]);

    }}}}

    3,删除Cookie:

    在我看来其实所谓的删除不过是利用Cookie中有过期时间这一特性,将时间转为负数也将就是说设定的时间要比现在时间早,代码如下

    function removeCookie(key) {

    setCookie(key, '', -1);

    }

    相关文章

      网友评论

          本文标题:cookie

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