cookie
简述什么是cookie?
1.cokie是浏览器访问服务器后,服务器传给浏览器的一段数据。
2.浏览器需要保存这段数据,不得轻易删除。
3.此后每次浏览器想访问服务器都必须带上这段数据。
cookie的属性?
set-cookie="name=value;damin=damin.com;path=/;expires=Sat,11 Jua 2020 10:02:02" GMT;HttpOnly"
name:唯一的cookie名称(必填)
damain:cookie对于哪一个域有效(必填)
path:表示这个cookie影响到的路径(非必填)
expires:失效时间,表示cookie何时应该被删除的时间戳(非必填)
max-age:与expeirs作用相同,用来告诉浏览器的cookie多久过期
cookie的作用?
①可用于判断用户是否是第一次访问
用户A访问了baidu.com,baidu.com的服务器就会给A返回一段数据(cookie),当A用户再次访问baidu.com时就会带上这段数据。
若是第一次访问就不会带有这段数据,以此来判断是否是第一次访问。
也可做为判断用户的身份,不同的用户访问同一个服务器,所返回的数据是不同,可以此来判断用户身份。
②历史记录 常用于购物车功能
当一个用户登陆后将商品加入购物车,cookie会被改写。
当第二次登陆时就可以看到商品还在购物车里。
cookie的使用?
添加cookie 键值对
document.cookie=“myCookie=hello”
读取cookie 读取cookie名
document.cookie=“myCookie”
修改cookie 添加cookie,cookie与将要修改的cookie相同,值不同
document.cookie=“myCoookie=world”
删除cookie 键cookie的值为空,失效时间为过去时间
var oDate=new Date();
oDate.setDate(oDate.getDate-7);
document.cookie=“myCookie=;expires=”+oDate
cookie的封装?
设置cookie
function setCookie(key,value,lostTime,path){ if(arguments.length==2){ document.cookie=name+"="+value; }else if(arguments.length==3){ paramsType=typeof(arguments[2]); if(paramsType===number){ document.cookie=name+"="+value";expires="+oDate }else{ document.cookie=name+"="+value+";path"+arguments[2] } }else{ var oDate=new Date(); oDate.setDate(oDate.getDate()+lostTime); document.cookie=name+"="+value+";expires="+oDate+";path="+path } }
获取cookie function getCookie(name){ var str=document.cookie; var arr=str.split(";"); for(let i=0;i<arr.length;i++){ // console.log(arr) var arr2=arr[i].split("="); if(arr2[0]===name){ return arr2[1] } return ''; } }
删除cookie function removeCookie(name){ setCookie(name,1,-1) }
替换cookie function replaceCookie(name,value){ setCookie(name,value) }
测试:
设置cookie'
setCookie("maCookie","helloworld","0","/")
删除cookie
removeCookie("myCookie");
若之前设置了path,此处删除时也要将path删除
获取cookie
getCookie("myCookie")
替换cookie
replaceCookie("myCookie","hello")
expires