Cookie Domain

域名A: ccssdd.zicp.vip
域名B: zicp.vip
B为A的上一级域名,也就是父亲,或者说叫爸爸。

  1. 当通过A域名去添加一个名称为k,内容为v的cookie, setDomain为zicp.vip.zicp.vip(带点和不带点两个效果是一样的,最终在zicp.vip这个域名下k1的域名都是 .zicp.vip ,如果你直接通过域名B去添加一个key,且生成的这个key所属域名没有带点,那么这个key是私有的,子域名不能访问),那么在zicp.vip这个域名下有一个key为k的cookie,域名A也可以获取这个值。那么当删除的时候,domain也要指定为 .zicp.vip
    Cookie Domain
    Cookie DomainCookie Domain
  2. setDomain为空的时候,只会在域名A下有这个key
  3. setDomain为ccssdd.zicp.vip的时候,会在ccssdd.zicp.vip这个域名下生成域名带点的名称(名称:k2),如图
    Cookie Domain
  4. setDomain为ccssdd.zicp.vip的时候,会在ccssdd.zicp.vip这个域名下生成域名带点的名称(名称:k1,内容为v11)
    Cookie Domain
    那么这个时候会有两个名称为k1的cookie,一个在上一级域名一个在自身域名,那么通过request.getCookies()去获取的时候,会获取两个为k1的cookie,如图([0],[2])。
    Cookie Domain
  5. 如果在域名A下想要删除域名B下的cookie,那么需要指定domain为.zicp.vip(必须带点,因为只有带点的cookie,子域名才有权利来进行访问),没有带点的是其私有的(可以通过浏览器cookie查看那些是其私有)。
    Cookie Domain
    Cookie DomainCookie Domain
    总结

request请求的时候,会把所有的cookie带上
父域名(zicp.vip)是没有权利来访问子域名的cookie。
子域名只能访问父域名带点的cookie
删除域名的时候,如果这个cookie的域名带点,那么也要指定domain。
可以存在名称一样的cookie(域名区分带点与不带点)