1. 程式人生 > >總結一下頂級域名和子級域名之間的cookie共享和相互修改、刪除

總結一下頂級域名和子級域名之間的cookie共享和相互修改、刪除

最近專案中剛好涉及到了主域名和子域名之間的共享和相互修改、刪除,也就藉此機會總結一下常用的幾個場景,這裡程式碼以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情況如下圖:

總的來說,頂級域名設定的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為頂級域名才可以】都可以修改。程式碼如下:

#為所有二級域名設定一個cookie
setcookie("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);

最後,希望這些簡單地總結可以幫到你,大家加油!


相關推薦

總結一下頂級域名域名之間cookie共享相互修改刪除

最近專案中剛好涉及到了主域名和子域名之間的共享和相互修改、刪除,也就藉此機會總結一下常用的幾個場景,這裡程式碼以PHP為例來說明,域名的話就拿頂級域名和二級域名為例,其他的場景都是類似哈! 設定COOKIE 頂級域名 頂級域名只能設定domain為頂級域名,不能

頂級域名域名之間cookie共享

設定COOKIE 頂級域名 頂級域名只能設定domain為頂級域名,不能設定為二級域名或者三級域名等等,否則cookie無法生成。 如yangbai.com能設定domain為yangbai.com或者www.yangbai.com,但不能設定domain為logi

ztree實現checkbox樹形選單,並且父節點不可選中(只有父選單);如何獲取選中子節點儲存到資料庫

1.使用ztree首先要匯入ztree的引入檔案(具體看自己需求,需要用ztree拓展功能的需要匯入拓展的js)、及樣式、圖片 注:ztree的樣式檔案必須和圖片檔案在同一級資料夾下 2.檔案引入之後,建立html頁面,樹形結構底層是套,如下圖所示即可

jquery獲取父元素元素

    <script type="text/javascript">  function show(x){     var y=$(x);//轉換成jquery物件     //查詢父元素    alert( y.parent().attr("name"));

C#中父窗口窗口之間控件互操作實例

child title 成員 img dddddd idt 函數 通過 plugin 本文實例講述了C#中父窗口和子窗口之間控件互操作的方法。分享給大家供大家參考。具體分析如下: 很多人都苦惱於如何在子窗體中操作主窗體上的控件,或者在主窗體中操作子窗體上的控件。相比較而言

Java——超類類物件之間的轉換

繼承是Java中常用的一項特性,通過繼承我們可以省去很多麻煩。 而Java中超類和子類物件之間的轉換則是很多新手的常遇見的難題,要是處理不好,恐怕會因為這個很特殊的問題導致一些潛在的危險,讓你整整一個晚上都在除錯程式以解決一個讓人抓狂的java.lang.ArrayStoreException異

父類物件類物件之間可以相互轉換嗎

可以相互轉換。但是若父類物件想轉換為子類物件,父類物件一定是用子類物件初始化的。   那麼父類物件如何用子類物件初始化呢? 假設父類為A,子類為B,那麼用子類初始化程式碼為: A a=new B() 這就相當於我們用父類的控制代碼指向了子類的空間,如下圖所示:

什麼是VUE的父元件元件?那麼父元件元件又是怎麼傳值的呢?

有時候我們經常分不清什麼是父元件,什麼又是子元件。現在來簡單說下:我們將某段程式碼封裝成一個元件,而這個元件又在另一個元件中引入,而引入該封裝的元件的檔案叫做父元件,被引入的元件叫做子元件。以上是我個人的理解含義,那麼現在就直接上程式碼吧! 子元件: <templa

Java中父類類中的方法呼叫引數傳遞探討

有這樣一段程式,看看它會輸出什麼結果 public class Test { public static void main(String [] args){ System.out.println(new B().getVa

Android之用Handler實現主執行緒執行緒互相通訊以及執行緒執行緒之間的通訊

1、上程式碼 activity_main.xml檔案 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.

Linux中新增修改刪除使用者使用者組

一、使用者: 在建立使用者時,需要為新建使用者指定一使用者組,如果不指定其使用者所屬的工作組,自動會生成一個與使用者名稱同名的工作組。建立使用者user1的時候指定其所屬工作組users,例:useradd –g users user1 1、使用命令 useradd 建立使用者 例:usera

淺談程序執行緒協程三者之間的區別聯絡

一、程序、執行緒、協程 1,程序 經典定義:一個執行中程式的例項。系統中的每個程式都執行在某個程序的上下文中。(-摘自 CSAPP) 程序是系統資源分配的最小單位   2,執行緒(thread) 執行緒就是執行在程序上下文中的邏輯流。 執行緒是作業系統能夠進行運算排程的最小單位。 &

GIT版本回退工作區暫存區管理修改提交修改撤銷修改刪除檔案

git status命令可以讓我們時刻掌握倉庫當前的狀態。比如哪個檔案被修改過,並且是否提交過。 git diff具體檔名.字尾名命令可以檢視某個檔案修改前後的區別,顯示的格式正是Unix通用的diff格式。 版本回退: 版本回退是有條件的,就是你還沒有把自己的本地版本

2-STM32開發板(Cortex-M3)exynos4412(Cortex-A9)之間的區別聯絡

一、ARM的簡介——what?? part1:ARM代表什麼?     1)ARM是"Advanced RISC Machine"的縮寫,最早的ARM處理器誕生於80年代的英國,目前總部在英國劍橋     2)ARM公司自己並不生產或者銷售晶片,它採用技術授權模式,通過出

Redis主從複製叢集配置系列之六(redis叢集節點新增刪除重新分配slot實戰)

下面操作都在同臺機子server1 192.168.1.198上操作2、檢視現有節點[[email protected] ~]# cd /usr/local/redis-3.0.6/src/[[email protected] src]# redis-c

使用配置移植工具裡面的Database Configuration Assistant幫助建立刪除資料庫

開始—oracle—-DataBase Configuration Assistant 可以使用DataBase Configuration Assistant來建立一個心得資料庫。Database Configuration Assistant簡稱是DBCA

mybatis修改刪除

#1使用者表    CREATE TABLE EASYBUY_USER(  `eu_user_id`       VARCHAR(10) PRIMARY KEY NOT NULL COMMENT  '使用者名稱',  `eu_password`      VARCHAR(20) NOT NULL COMMEN

每天兩道oracle筆試題+第一天:1解釋冷備份熱備份的不同點及各自的優點?2解釋歸檔非歸檔模式之間的不同它們各自的優缺點?

每天兩道oracle筆試題系列 第一天 不積跬步無以至千里 問題: 1、解釋冷備份和熱備份的不同點及各自的優點? 2、解釋歸檔和非歸檔模式之間的不同和它們各自的優缺點? ***************

在list集合中的新增修改刪除遍歷元素

集合與陣列相似,但他的長度是可變的 list集合繼承了collection介面,list集合的實現類是ArrayList()。 如下: package com.test; import java.util.ArrayList; // import the ArrayL

Linux學習總結(三十四)lamp之用戶認證域名跳轉

lamp 用戶認證 域名跳轉 訪問日誌 用戶認證 為了某些網站的安全需要,特意授權特定用戶訪問,因此產生了網站訪問的用戶認證機制。我們可以針對某個站點進行認證,也可以指定某個目錄,或者是一個文件。編輯虛擬主機配置文件:vim /usr/local/apache2.4/conf/extra/ht