cookie会话技术
cookie会话跟踪技术:
1.cookie是有大小限制 4KB
2.域的限制,子级能访问父级的cookie,父级不能访问子级的cookie,
3.会有过期时间,过期时间之前一直有效,即使窗口或者浏览器关闭,在所有同源窗口也都是可以共享的。
4.只能存储字符串。
cookie会在浏览器和服务器之间来回传递。
cookie 的设置:
document.cookie = "name=张三;path=/;expires=过期时间"
cookie里可以存储值,可以设置路径,"/"写的是根路径,写根路径时,当前文件夹下所有文件都能访问到这个cookie值,不设置路径,只能当前文件能访问这个cookie值,当前文件夹下的其他文件访问不到的。然后写过期时间,如果不写过期时间,关闭页面,cookie就消失。
假如过期时间设置一个小时以后:
var d = new Date(); //获取当前时间
d.setHours(d.getHours()+1) //设置过期时间,也就是当前时间加1小时
document.cookie = "name=张三;path=/;expires="+d
特点:
1.信息只能存储字在符串中
2. 时间限制
3.域的限制
将设置cookie做一个封装:
function setCookie(key,val,expires){
var d = new Date();
d.setDate(d.getDate()+expires) //这个expires写几过期时间就是几天
document.cookie = key + "=" +val+ ";path=/;expires="+d
}
setCookie("name","李四",4)
setCookie("name","张三",7)
cookie 的获取 :
console.log(document.cookie) //name=张三 获取的是一个字符串
console.log(document.cookie.split(";")[0].spit("=")[1]); //这样获取的就是val值
将获取cookie做一个封装:
function getCookie(key){
var cookies = document.cookie;
var arr = cookies.split("; ") //这里分割的时候分号后要加空格
for(var i = 0;i<arr.length;i++){
var newArr = arr[i].split("=");
if(newArr[0] == key){
return newArr[1];
}
}
}
console.log(getCookie("name")
cookie 的删除:
function removeCookie(key){
setCookie(key,"",-1); //这里把val值设置为空,其实也清掉了val值,后面又设置过期时间为 -1,也是清除作用。
}
removeCookie("name")