域名和子域名間的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");      //*.yangbai.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的方式不同而已。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章