1.设置COOKIE
1.1.一级域名
一级域名只能设置domain为一级域名,不能设置为二级域名或者三级域名等等,否则cookie无法生成。
如:test.com能设置domain为test.com或者www.test.com,但不能设置domain为login.test.com,这样cookie不会生成。
以下面的代码为例:
setcookie("name1", "test", time() + 1000); //test.com自己可以看到
setcookie("name2", "test", time() + 1000, "/", "www.test.com"); //*.www.test.com都可以看到
setcookie("name3", "test", time() + 1000, "/", "test.com"); //*.test.com都可以看到
setcookie("name4", "test", time() + 1000, "/", "login.test.com"); //设置无效
注意:
设置domain的时候,.test.com和test.com是一样的。
未指定domain时,默认的domain为用哪个域名访问就是哪个。
执行后,就可以在www.test.com浏览器下看到cookie情况。
总的来说,一级域名设置的cookie可以共享【需要指定domain主域名的host】给二级域名,也可以自己私有【不指定domain】。
1.2.二级域名
拿game.test.com为例,代码如下:
setcookie("game", "test"); //只有自己可以看到
setcookie("game1", "test", time() + 1000, "/", "test.com"); //*.test.com都可以看到
setcookie("game2", "test", time() + 1000, "/", "chip.game.test.com"); //设置无效
执行后,就可以在game.test.com浏览器下看到cookie情况。
总的来说,设置cookie的话只能在本域名下或者domain级别高于自身的域名下才会生效!
2.读取COOKIE
有了上面的例子和实践,大概的规则如下:
-
- 二级域名能读取设置了domain为一级域名或者自身的cookie,不能读取其他二级域名domain的cookie。例如:要想cookie在多个二级域名中共享,需要设置domain为一级域名,这样就可以在所有二级域名里面或者到这个cookie的值了。
- 一级域名只能获取到domain设置为一级域名的cookie,domain设置为其他子级域名的无法获取。
3.修改COOKIE
3.1.一级域名
一级域名的cookie在一级域名或者非一级域名【需要设置domain为一级域名才可以】都可以修改。代码如下:
#为所有二级域名设置一个cookie
setcookie("name", "test", time() + 1000, "/", "test.com");
#在game.test.com下面修改这个cookie值
setcookie("name", "test123", time() + 1000, "/", "test.com");
3.2.二级域名
修改二级域名自身生成的cookie不需要设置domain,直接设置即可。代码如下:
#修改game.test.com下面自身的cookie值
setcookie("game", "chip", time() + 10000);
4.删除COOKIE
删除cookie理解为是修改cookie的一种特殊场景,只需将expire设置为过期、值设置为null即可,代码如下:
#删除test.com下面的cookie值
setcookie("name", null, time() - 1000, "/", "test.com");
#删除game.test.com下面自身的cookie值
setcookie("game", null, time() - 1000);
5.总结
对于Cookie在一级域名和子级域名间的操作基本如上所述,不同编程语言之间操作cookie的方式不同而已。