域名和子域名间的cookie共享和修改、删除

1.设置COOKIE
1.1.一级域名
  一级域名只能设置domain为一级域名,不能设置为二级域名或者三级域名等等,否则cookie无法生成。
       如:test.com能设置domaintest.com或者www.test.com,但不能设置domainlogin.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.comtest.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,不能读取其他二级域名domaincookie。例如:要想cookie在多个二级域名中共享,需要设置domain为一级域名,这样就可以在所有二级域名里面或者到这个cookie的值了。 
    • 一级域名只能获取到domain设置为一级域名的cookiedomain设置为其他子级域名的无法获取。  

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的方式不同而已。
posted @   oO归客Oo  阅读(2157)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 分享4款.NET开源、免费、实用的商城系统
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
点击右上角即可分享
微信分享提示