博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
总结一下顶级域名和子级域名之间的cookie共享和相互修改、删除
阅读量:5966 次
发布时间:2019-06-19

本文共 1963 字,大约阅读时间需要 6 分钟。

最近项目中刚好涉及到了主域名和子域名之间的共享和相互修改、删除,也就借此机会总结一下常用的几个场景,这里代码以PHP为例来说明,域名的话就拿顶级域名和二级域名为例,其他的场景都是类似哈!

设置COOKIE

顶级域名

顶级域名只能设置domain为顶级域名,不能设置为二级域名或者三级域名等等,否则cookie无法生成。

yangbai.com能设置domainyangbai.com或者www.yangbai.com,但不能设置domainlogin.yangbai.com,这样cookie不会生成。

以下面的代码为例:

setcookie("name1", "yangbai", time() + 1000);//yangbai.com自己可以看到setcookie("name2", "yangbai", time() + 1000, "/", "www.yangbai.com");//*.www.yangbai.com都可以看到setcookie("name3", "yangbai", time() + 1000, "/", "yangbai.com");//*.yangbai.com都可以看到setcookie("name4", "yangbai", time() + 1000, "/", "login.youzan.com");//设置无效

设置domain的时候,.yangbai.comyangbai.com是一样的。

未指定domain时,默认的domain为用哪个域名访问就是哪个。

执行后,www.yangbai.com在浏览器的cookie情况如下图:

图片描述

二级域名login.yangbai.comgame.yangbai.com浏览器的cookie情况如下图:

clipboard.png

总的来说,顶级域名设置的cookie可以共享【需要指定domain主域名的host】给二级域名,也可以自己私有【不指定domain】。

二级域名

game.yangbai.com为例,代码如下:

setcookie("game", "yangbai");//只有自己可以看到setcookie("game1", "yangbai", time() + 1000, "/", "yangbai.com");//*.yangbai.com都可以看到setcookie("game2", "yangbai", time() + 1000, "/", "chip.game.yangbai.com");//设置无效

执行后,game.yangbai.com在浏览器的cookie情况如下图:

图片描述

总的来说,设置cookie的话只能在本域名下或者domain级别高于自身的域名下才会生效!

读取COOKIE

有了上面的例子和实践,大概的规则如下:

  • 二级域名能读取设置了domain为顶级域名或者自身的cookie,不能读取其他二级域名domaincookie。例如:要想cookie在多个二级域名中共享,需要设置domain为顶级域名,这样就可以在所有二级域名里面或者到这个cookie的值了。

  • 顶级域名只能获取到domain设置为顶级域名的cookiedomain设置为其他子级域名的无法获取。

修改COOKIE

顶级域名

顶级域名的cookie在顶级域名或者非顶级域名【需要设置domain为顶级域名才可以】都可以修改。代码如下:

#为所有二级域名设置一个cookiesetcookie("name", "yangbai", time() + 1000, "/", "yangbai.com");#在game.yangbai.com下面修改这个cookie值setcookie("name", "yangbai11", time() + 1000, "/", "yangbai.com");

二级域名

修改二级域名自身生成的cookie不需要设置domain,直接设置即可。代码如下:

#修改game.yangbai.com下面自身的cookie值setcookie("game", "chip", time() + 10000);

删除COOKIE

删除cookie理解为是修改cookie的一种特殊场景,只需将expire设置为过期、值设置为null即可,代码如下:

#删除yangbai.com下面的cookie值setcookie("name", null, time() - 1000, "/", "yangbai.com");#删除game.yangbai.com下面自身的cookie值setcookie("game", null, time() - 1000);

最后,希望这些简单地总结可以帮到你,大家加油!

转载地址:http://qmtax.baihongyu.com/

你可能感兴趣的文章
第一次作业-准备篇
查看>>
HDU1848 Fibonacci again and again
查看>>
HTML思维导图
查看>>
office2016选择性安装
查看>>
C# 自定义控件入门
查看>>
git改密码出现授权问题
查看>>
Hadoop IO 特性详解(2)
查看>>
ORA-02266: 表中的唯一/主键被启用的外键引用
查看>>
MySQL类型转换 使用CAST将varchar转换成int类型排序
查看>>
Django的POST请求时因为开启防止csrf,报403错误,及四种解决方法
查看>>
Apache common-fileupload用户指南
查看>>
day-6 and day-7:面向对象
查看>>
IE维护(IEM)策略不再适用于IE10及后续IE版本
查看>>
Java7中的ForkJoin并发框架初探(下)—— ForkJoin的应用
查看>>
java中的重量级与轻量级概念
查看>>
Linux设备驱动工程师之路——硬件访问及混杂设备LED驱动
查看>>
进程和线程<一>
查看>>
远程算数程序——版本v1.0
查看>>
Mysql常见四种索引的使用
查看>>
说说Android桌面(Launcher应用)背后的故事(一)——揭开她神秘的面纱
查看>>