Cookie的使用注意事项

一、使用注意事项

①Cookie是由http协议制定,javaee,android,php,.net,ios等

②Cookie中的数据是有大小限制,不能存储大量数据。4kb。
③一个浏览器存储的cookie也是有上限。300个左右
④一个网站在浏览器上存储的cookie也是有上限。30个左右
⑤不同浏览器的cookie不同的。例如:火狐浏览器的cookie和IE浏览器的cookie相互独立。
⑥cookie中不能直接存储中文。
解决:URL编码,然后在浏览器端进行uri解码


Cookie不能存大量数据,不能向浏览器存储很多cookie


二、生命周期

Cookie在浏览器关闭后就被浏览器清空。如何让Cookie长久保存在浏览器端。延长生命周期。用setmaxage


Cookie生命周期:
默认会话范围


变为持久化(保存到硬盘上)




Cookie对象.setMaxAge(int second); 设置Cookie的生存时间。
参数:秒


-1  默认,会话范围
0   立刻使cookie过期。让浏览器立刻删除cookie
>0  持久化保存cookie。不会在乎浏览器关闭与否。
如果没有过期,还能正常使用
如果过期,浏览器不会传递过期的cookie。


三、cookie有效路径

问题:浏览器发送不同请求路径时,带来哪些cookie信息。
Cookie信息的保存路径是由浏览器决定的,不同的浏览器时有不同的保存路径。不用开发人员操心。

Cookie对象.setPath(String path); 有效路径。

请求路径 等于或者包含 有效路径,这个Cookie就会被带入请求头


访问路径:
/web_1/hehe/




c1:/web_1/
c2:/web_1/hehe/
c3:/web_1/hehe/xixi/


分析:因为访问路径等于c2有效路径,c2能被带入请求头
 因为访问路径包含c1有效路径,c1能被带入请求头
 因为访问路径不等于、不包含c3有效路径,c3不带入请求头


注意:首先必须先运行定义cookie的sevlet,然后在进行路径的访问,不然只有c1能够创建成功


四、关于cookie的覆盖问题。

Cookie唯一标识相同,认定是一个cookie,新的值覆盖旧的值。
Cookie唯一标识不同,认定是两个没有任何关系cookie,分别保存。


Cookie唯一标识:域名 + 资源路径 + cookie名字

Cookie有效路径:http://localhost:8080/web/a.html
域名:http://localhost:8080/
资源路径: /web/a.html



例1:
以下两个cookie是分别保存的,因为虽然域名相同、资源路径相同,但是cookie名字不同
Cookie1:有效路径:http://www.baidu.com/hehe/a.html  c1
Cookie2:有效路径:http://www.baidu.com/hehe/a.html  c2


例2:
以下两个cookie是分别保存的,因为虽然域名相同、cookie名字相同,但是资源路径不同
Cookie1:有效路径:http://www.baidu.com/hehe/a.html  c1
Cookie2:有效路径:http://www.baidu.com/haha/a.html  c1


例3:
以下两个cookie是分别保存的,因为虽然资源路径相同、cookie名字相同,但是域名不同
Cookie1:有效路径:http://www.baidu.com/hehe/a.html  c1
Cookie2:有效路径:http://www.itheima.cn/hehe/a.html  c1


例4:
相互覆盖,因为域名、资源路径、cookie名 ,唯一标识都是相同的,所以判定为一个cookie。
Cookie1:有效路径:http://www.baidu.com/hehe/a.html  c1
Cookie2:有效路径:http://www.baidu.com /hehe/a.html  c1


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值