摘要:執(zhí)行后,在瀏覽器的情況如下圖二級(jí)域名和瀏覽器的情況如下圖總的來(lái)說(shuō),頂級(jí)域名設(shè)置的可以共享需要指定主域名的給二級(jí)域名,也可以自己私有不指定。頂級(jí)域名只能獲取到設(shè)置為頂級(jí)域名的,設(shè)置為其他子級(jí)域名的無(wú)法獲取。
最近項(xiàng)目中剛好涉及到了主域名和子域名之間的共享和相互修改、刪除,也就借此機(jī)會(huì)總結(jié)一下常用的幾個(gè)場(chǎng)景,這里代碼以PHP為例來(lái)說(shuō)明,域名的話就拿頂級(jí)域名和二級(jí)域名為例,其他的場(chǎng)景都是類似哈!
設(shè)置COOKIE 頂級(jí)域名頂級(jí)域名只能設(shè)置domain為頂級(jí)域名,不能設(shè)置為二級(jí)域名或者三級(jí)域名等等,否則cookie無(wú)法生成。
如yangbai.com能設(shè)置domain為yangbai.com或者www.yangbai.com,但不能設(shè)置domain為login.yangbai.com,這樣cookie不會(huì)生成。
以下面的代碼為例:
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");//設(shè)置無(wú)效
設(shè)置domain的時(shí)候,.yangbai.com和yangbai.com是一樣的。
未指定domain時(shí),默認(rèn)的domain為用哪個(gè)域名訪問(wèn)就是哪個(gè)。
執(zhí)行后,www.yangbai.com在瀏覽器的cookie情況如下圖:
二級(jí)域名login.yangbai.com和game.yangbai.com瀏覽器的cookie情況如下圖:
總的來(lái)說(shuō),頂級(jí)域名設(shè)置的cookie可以共享【需要指定domain主域名的host】給二級(jí)域名,也可以自己私有【不指定domain】。
二級(jí)域名拿game.yangbai.com為例,代碼如下:
setcookie("game", "yangbai");//只有自己可以看到 setcookie("game1", "yangbai", time() + 1000, "/", "yangbai.com");//*.yangbai.com都可以看到 setcookie("game2", "yangbai", time() + 1000, "/", "chip.game.yangbai.com");//設(shè)置無(wú)效
執(zhí)行后,game.yangbai.com在瀏覽器的cookie情況如下圖:
讀取COOKIE總的來(lái)說(shuō),設(shè)置cookie的話只能在本域名下或者domain級(jí)別高于自身的域名下才會(huì)生效!
有了上面的例子和實(shí)踐,大概的規(guī)則如下:
二級(jí)域名能讀取設(shè)置了domain為頂級(jí)域名或者自身的cookie,不能讀取其他二級(jí)域名domain的cookie。例如:要想cookie在多個(gè)二級(jí)域名中共享,需要設(shè)置domain為頂級(jí)域名,這樣就可以在所有二級(jí)域名里面或者到這個(gè)cookie的值了。
頂級(jí)域名只能獲取到domain設(shè)置為頂級(jí)域名的cookie,domain設(shè)置為其他子級(jí)域名的無(wú)法獲取。
修改COOKIE 頂級(jí)域名頂級(jí)域名的cookie在頂級(jí)域名或者非頂級(jí)域名【需要設(shè)置domain為頂級(jí)域名才可以】都可以修改。代碼如下:
#為所有二級(jí)域名設(shè)置一個(gè)cookie setcookie("name", "yangbai", time() + 1000, "/", "yangbai.com"); #在game.yangbai.com下面修改這個(gè)cookie值 setcookie("name", "yangbai11", time() + 1000, "/", "yangbai.com");二級(jí)域名
修改二級(jí)域名自身生成的cookie不需要設(shè)置domain,直接設(shè)置即可。代碼如下:
#修改game.yangbai.com下面自身的cookie值 setcookie("game", "chip", time() + 10000);刪除COOKIE
刪除cookie理解為是修改cookie的一種特殊場(chǎng)景,只需將expire設(shè)置為過(guò)期、值設(shè)置為null即可,代碼如下:
#刪除yangbai.com下面的cookie值 setcookie("name", null, time() - 1000, "/", "yangbai.com"); #刪除game.yangbai.com下面自身的cookie值 setcookie("game", null, time() - 1000);
最后,希望這些簡(jiǎn)單地總結(jié)可以幫到你,大家加油!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/30464.html
摘要:例如要想在多個(gè)二級(jí)域名中共享,需要設(shè)置為頂級(jí)域名,這樣就可以在所有二級(jí)域名里面或者到這個(gè)的值了。頂級(jí)域名只能獲取到設(shè)置為頂級(jí)域名的,設(shè)置為其他子級(jí)域名的無(wú)法獲取。 Cookie和Session詳解 Cookie Cookie只存儲(chǔ)在客服端 Cookie是什么:Cookies是web服務(wù)器存放在用戶硬盤的一段文本,Cookies允許一個(gè)wen站點(diǎn)在用戶的機(jī)器存放一些文本的信息,并可以在以...
摘要:不同域名不同端口不同協(xié)議,只要符合其中之一都算跨域請(qǐng)求同域當(dāng)請(qǐng)求的符合域名端口協(xié)議都相同的時(shí)候,就是同域請(qǐng)求同域策略是瀏覽器內(nèi)部實(shí)現(xiàn)的一種安全機(jī)制。 cookie如何設(shè)置?如何獲取? php中向?yàn)g覽器設(shè)置 cookie setcookie($key ,$val [,$expire ,$path ,$domain ,$secure]);注意:cookie只可以存字符串類型數(shù)據(jù),而且在...
摘要:用戶登錄成功之后,會(huì)與認(rèn)證中心及各個(gè)子系統(tǒng)建立會(huì)話,用戶與認(rèn)證中心建立的會(huì)話稱為全局會(huì)話,用戶與各個(gè)子系統(tǒng)建立的會(huì)話稱為局部會(huì)話。 在工作中,有這樣一個(gè)需求,因?yàn)楣居卸鄠€(gè)管理平臺(tái),每次登錄一個(gè)平臺(tái)都需要輸入賬號(hào)和密碼進(jìn)行登錄,特別麻煩,所以,希望只需登錄一個(gè)平臺(tái)的賬號(hào)和密碼,其他平臺(tái)的不用輸入賬號(hào)和密碼也可以自動(dòng)登錄,即單點(diǎn)登錄,經(jīng)過(guò)兩周的研究和實(shí)踐,終于完成了該需求,目前公司的兩個(gè)...
閱讀 3433·2023-04-25 18:14
閱讀 1526·2021-11-24 09:38
閱讀 3244·2021-09-22 14:59
閱讀 3060·2021-08-09 13:43
閱讀 2562·2019-08-30 15:54
閱讀 562·2019-08-30 13:06
閱讀 1540·2019-08-30 12:52
閱讀 2719·2019-08-30 11:13