学习Cookie 提升
目录
Cookie 的覆盖
Cookie下的path 特点
设置Cookie 路径
实例
Cookie的最大存活时间
设置Cookie 存活时间
实例
Cookie 和session的区别 和联系
Cookie 的覆盖
当 key相同 和只要path的上级目录的路径相同,就可以被替换掉 value 值
如下图所示
大家发现,我第一次请求路径 /aa
第二次请求路径是/As
发现两次请求无论是/aa 还是/As的路径的上一级目录 / ,同时两次请求的存储在cookie中数据的key 都是相同的,才可以被覆盖
注意:存储在Cookie 中的数据,默认path 是 “/ " 表示任意的地址都可以访问到当前浏览器的Cookie
存储在Cookie数据被覆盖特点
- key 值相同
- 所有请求路径的上一级路径相同
请求路径的上一级路径不同情况
但如果 我们请求的上一级目录不是 / 而是 /xx ,这时候就无法根据key相同而被覆盖
key值不同的情况
Cookie下的path 特点
一个url 如果存在上级目录,至少可以看到/ 下的数据 甚至/xx 和 / 下Cookie 存储在浏览器的数据
举例:1 / Aa 2 /As/aa 两个路径
/As
/As/aa
发现 /As/aa 我们不仅可以看到它上一级目录/As 下的数据 还可以 看到 / 下的所有数据
设置Cookie 路径
public void setPath(String uri) {
this.path = uri;
}
实例
cookie1.setPath("/");
Cookie的最大存活时间
默认是会话级别 【当前浏览器不关闭,就会一直存在】
设置Cookie 存活时间
public void setMaxAge(int expiry) {
this.maxAge = expiry;
}
实例
注意:默认 expiry 是 -1 表示当前是会话级别。单位是秒
如果我要设置 七天 为存活时间
expiry= 60*60*24*7 这样的算式,才可以更好的被识别。
//设置cookie的过期时间,单位为秒,默认为-1,表示关闭浏览器就失效,这里设置成7天
cookie1.setMaxAge(60 * 60 * 24 * 7);
Cookie 和session的区别 和联系
区别
我认为
1 作用范围不同 :
- Cookie 一般是 服务器拿数据,存储在客户端浏览器上,应用于前端界面
- Session 是存储服务器,作用在服务器
联系
Session 的底层使用到了Cookie
浏览器每次向服务器发送请求,服务器会先看有没有为当前请求分配好SessonID ?
如果没有,表示使用当前的url 的第一次请求,服务器会自动分配SessionID,并使用Cookie 将 Id 带到浏览器上;如果有,根据已经分配好的ID 找到对应的Session 域中存储的数据。