cookie详解

原创 greenhand 随笔 JavaScript 387阅读 2017-05-26 17:16:04 举报

Document.cookie

https://developer.mozilla.org/zh-CN/docs/Web/API/Document/cookie

cookie中只有key,path,domain都完全相同,表示的才是同一个cookie。(这三个字段都相同,secure字段不同,也表示同一个cookie)
如果相同的key,但path或者domain中有任何一个的值不同,那么document.cookie中就会出现key名相同的多个cookie值。

同一个网站中,在任何path下都可以设置其他path的cookie,也可以设置父域名的cookie(但在父域网页中无法设置子域的cookie,不会报错也不会生效)。

只有在https页面中设置cookie时才能设置secure,否则会导致cookie设置失效,且设置了secure的cookie只能在https页面中才能使用document.cookie读取,在http页面中document.cookie是读取不到的

设置cookie时,如果没有设置domain,那么cookie只会在当前页面的域名下生效,此时不会在子域下生效,如果设置了domain,那么则会在设置的domain及其子域名下生效

在http://shop.vivo.com.cn路径下设置 document.cookie='test=1;path=/product';
在http://shop.vivo.com.cn/product路径下设置 document.cookie='test=3;path=/';

这样在http://shop.vivo.com.cn页面中,document.cookie的值为字符串 test=3
这样在http://shop.vivo.com.cn/product页面中,document.cookie的值为字符串 test=1; test=3

在http://shop.vivo.com.cn/product路径下设置 document.cookie='common=5;path=/;domain=vivo.com.cn';

这样在http://shop.vivo.com.cn/product页面中,document.cookie的值为字符串 test=1; test=3; common=5
这样在http://webcloud.vivo.com.cn/contacts页面中,document.cookie的值为字符串 common=5

在http://www.vivo.com.cn路径下设置 document.cookie='common=1;path=/;secure';
在https://www.vivo.com.cn路径下设置 document.cookie='common2=2;path=/;secure';

这样在http://www.vivo.com.cn页面中,document.cookie的值为空字符串
这样在https://www.vivo.com.cn页面中,document.cookie的值为字符串 common2=2

在http://appstore.vivo.com.cn路径下设置 document.cookie='common=1';

这样在http://hf.appstore.vivo.com.cn下是读不到common这个cookie的
只有在http://appstore.vivo.com.cn路径下这样设置才行 document.cookie='common=1;domain=appstore.vivo.com.cn'

获取cookie

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复