cookie (浏览器缓存)

摘要:
cookie其实是个后端技术指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据服务器本身是没有记录客户端身份的方法的。以前是字字千金,一个域下只能设置几十个,而现在据说有5M(5兆)对于前端来说,种cookie就是给document设置了一个叫做cookie的自定义属性,这个属性能被所有浏览器识别,并缓存在浏览器中。写(设置)cookie一定要在服务器环境下运行。每个key=val都是以分割的cookie的默认生命周期是当浏览器关闭以后就结束。

cookie 其实是个后端技术

指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常是经过加密的)

服务器本身是没有记录客户端身份的方法的。

以前是字字千金,一个域下只能设置几十个,而现在据说有5M(5兆)

对于前端来说,种cookie就是给document设置了一个叫做cookie的自定义属性,这个属性能被所有浏览器识别,并缓存在浏览器中。

写(设置)cookie 一定要在服务器环境下运行。

设置 cookie :

document.cookie = key = val

设置 cookie 都会调用 toString

读取:

document.cookie

返回的结果是把这个域中所有的cookie都显示出来了。每个key=val 都是以 (分号加空格)分割的

cookie 的默认生命周期是当浏览器关闭以后就结束。不过可以通过 expires 去设置生命周期

比如: document.cookie = ' name=xyf2 ' + ' expires= ' + 未来的时间点

哪里会用到cookie ?? :

猜你喜欢、身份验证、每日推荐、免登陆。。。

cookie的好处:

1.生命周期是可以设置的。而localStorage 的内容只要不清一直都在。

2.可以把常用的重要的数据缓存起来,减少 http 请求

cookie 的设置、获取、移除

function getCookie(key){//获取cookie的时候,会把所有的cookie都获取出来,并且以分号加空格(; )来划分每一个cookie
        let c = document.cookie.split('; ');//获取到一堆cookie后用分号加空格切一刀
        let on = false;
        for(let i of c){
            let arr = i.split('=');//每条数据都有‘name’=‘val’,所以在用(=)切一刀
            if(arr[0] ===key){
                on = true;
                return arr[1];
            }
        }
        if(!on)return null;
    }

    function setCookie(key,val,obj={}){
        let d = newDate();
        let {name,time} = obj;//解构赋值
        switch(name){
            case 'date':
                d.setDate(d.getDate() + time);//这行的console 结果是时间戳
            break;
            case 'minu':
                d.setMinutes(d.getMinutes() +time);
            break;
            case 'hour':
                d.setHours(d.getHours() +time);
            break;
        }
        document.cookie = key +'='+ JSON.stringify(val) + (obj.time?'; expires='+ d.toUTCString:'');//拼接cookie//d.toUTCString 时间到了刷新页面就清除cookie,只用 d 需要关闭页面再打开才会清除过期的cookie 
}
    //setCookie('age',12);
    //setCookie('age',12,{name:'hour',time:5});
    //console.log(getCookie('name'));

    function rmCookie(key,val){//删除cookie,也可以直接在控制台中删,也可以给cookie设置时间,时间到了就会移除
        setCookie(key,val,{name:'date',time:-1}); //根据key来得到需要删除的cookie,将该cookie设置截止时间为负数即可
    }

    let arr = {a:1};
    setCookie('name',arr,{name:'date',time:1});

    console.log( getCookie('name'));

2018-12-14

免责声明:文章转载自《cookie (浏览器缓存)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇prometheus监控elasticsearchAndroid应用开发中的风格和主题(style,themes)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

爬虫实战篇(模拟登录)---我们以模拟去哪儿网为例

(1)、登录实质 互联网上的部分网站需要登录后方能访问,当我们打开网页并登录,就会在客户端生成Cookies(相当于个人身份证)信息,Cookies中包含了SessionId信息,登录后的请求都会带上Cookies发送给服务器,服务器会根据Cookies判断出对应的SessionID,进而找到会话,从而判断用户是否师登录状态,从而是否给用户响应。 (2)、...

跨域大全

正常ajax请求表现 跨域类型: 跨域,指一个域下的文档或脚本试图去请求另一个域下的资源,ajax跨域只是属于浏览器"同源策略"中的一部分,其它的还有: 0)Cookie跨域iframe跨域,LocalStorage跨域 1.) 资源跳转: A链接、重定向、表单提交 2.) 资源嵌入:<link>、<script>、<i...

HTTP 请求头 Header

HTTP 请求头 Header  HTTP请求头概述 (HttpServletRequest) HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST或者HEAD)。   如有必要,客户程序还可以选择发送其他的请求头。大多数请求头并不是必需的,但Content-Length除外。对于POST请求来说Content-...

【js】了解前端缓存,收获不止于此!

了解前端缓存,收获不止于此! 这次我们来讲一下关于前端缓存的问题。感谢赵欢同学提供doc素材。 首先,开局我画了一张图,你会对文章有一个大局了解。 今天讲的是前端缓存。 前端缓存有3大种:如图,分为HTTP缓存、浏览器缓存、应用程序缓存。 HTTP缓存我们先来看HTTP缓存:(做下了解) 分为强缓存与协商缓存。 首先看强缓存: 强缓存之Expires...

nodejs-5.6 cookie-parser

cookie-parser 官网:https://github.com/expressjs/cookie-parser 一、概念: cookie ==> 小甜饼 , parser ==> 解析器,  cookie-parser 就是用来解析 cookie 的.  二、cookie存储位置:cookie是存储在客户端浏览器中.每个浏览器的 coo...

C#正则表达式引发的CPU跑高问题以及解决方法团队

3月23日(周日)下午16:30左右,博客园主站负载均衡中的2台Web服务器CPU玩起了爬楼梯的游戏(见上图),一直爬到了接近100%。发现这个状况后,我们立即将这2台阿里云临时磁盘云服务器从负载均衡中摘下来,挂上1台云盘云服务器,恢复了正常。 由于曾经多次遇到过阿里云云服务器CPU问题,现在对阿里云云服务器产生了一种偏见,只要出现CPU问题,就会首先怀...