1.cookie 的特点:
a: 大小限制:不超过4k;
b: 每个域下cookie不能超过50个;
c: 有效期(和设定时间有关),过了有效时间cookie自动删除;
d: cookie的读取,只能访问同一个域名下的cookie(eg:localhost )-----“域的限制!”;
e: 没有设置存储时间的cookie是临时cookie,浏览器关闭将自动删除;
f: cookie值只能是字符串;
2.cookie和前后端的关系:
当一个请求发起的时候,如果cookie空间中有cookie内容(cookie存在),那么在当前请求中的请求头里将携带cookie的内容传到后端。如果在后端设置了cookie,同样在留来其中也可以显示。
3.cookie的读取:
document.cookie(控制台打印输出)
4.cookie的设置:
document.cookie=“name=ggg”
5.前端设置cookie:
document.cookie=“属性=属性值” ----不带时间的为临时cookie;
document.cookie=“属性=属性值;expires=时间” ---带有时间的cookie;
6.cookie的访问:
子文件里面能访问父文件里面的cookie,但是父文件的cookie不能在子文件访问;(好比学生可以无限制的坑爹,但是爹不能坑儿子!!!)
6.cookie的完美设置:
document.cookie=“属性=属性值;path=/;expires=时间.toGMTString()”;---- .toGMTString()是格林尼时间,意思就是在世界各个地方都可以访问。
7.cookie的封装:
******设置cookie*****
// 设置cookie; function setcookie(cookiename,cookieval,expires){ //创建一个时间; let d=new Date(); //设置cookie的有效期; d.setDate(d.getDate()+parseInt(expires)); //设置cookie的名字和cookie值; document.cookie=cookiename+‘=‘+cookieval+‘;path=/;expires=‘+ d.toGMTString(); } // setcookie(‘kka‘,‘90‘,1); //读取cookie; function getCookie(cookiename) { let all = document.cookie; //字符串转成数组; let arr = all.split(‘; ‘); //此处必须是 ; 空格 ,即分号后面必须有空格!!!! //循环遍历每一项; for (let i = 0, k = arr.length; i < k; i++) { //i 后面的 分号 !!!! let arrTemp = arr[i].split(‘=‘); //判断cookiename和arrTemp第一项作对比;如果相等取出即可; if (cookiename == arrTemp[0]) { return arrTemp[1]; } } } // console.log(getCookie(‘kka‘)) 删除cookie; cookie不能进行删除,只能让其过期失效,给其设置一个过期时间即可; function removeCookie(cookiename){ setcookie(cookiename,null,-10) } removeCookie(‘kka‘,‘goods‘,‘aaa‘)
8.cookie的应用:
a:免登录;
b:电商平台购物车
原文:https://www.cnblogs.com/gzw-23/p/11741719.html