为什么Chrome和Safari浏览器没有看到某些分支的Cookie

我有一个网站为example.com生成一个cookie。 它可以通过http://example.com和http://www.example.com在Firefox,Chrome 18和Safari中访问。 但是,我无法从webkit派生的浏览器中访问http://test.me.example.com中的cookie。 它适用于Firefox。

我从javascript中设置cookie时,已经用domain = example.com和.example.com之一进行了测试。

该Cookie的路径为/且已设置过期时间。


你如何指定子域名? Chrome期望子域名的Cookie前缀为一个点,例如domain = .example.com

您可能会发现这篇文章很有用:https://serverfault.com/questions/153409/can-subdomain-example-com-set-a-cookie-that-c​​an-be-read-by-example-com

从相同的RFC2109引用你读到:

   * A Set-Cookie from request-host x.foo.com for Domain=.foo.com would
     be accepted.

所以subdomain.example.com可以为.example.com设置一个cookie。 到现在为止还挺好。

   The following rules apply to choosing applicable cookie-values from
   among all the cookies the user agent has.

   Domain Selection
        The origin server's fully-qualified host name must domain-match
        the Domain attribute of the cookie

那么我们有域名匹配吗?

  • A是一个FQDN字符串,其格式为NB,其中N是非空名称字符串,B的形式是.B',B'是FQDN字符串。 (所以,xycom域名匹配.y.com而不是y.com。)但是现在example.com根据定义不会域名匹配.example.com。 但www.example.com(或域中的任何其他“非空名称”)>会。 该RFC在理论上已经被RFC2965所废弃,该RFC2965规定了强制Set-Cookie2操作上的领域的领先点的事情。
  • 更重要的是,正如@托尼指出的那样,是真实的世界。 有关实际用户代理正在执行的内容,请参阅

    Firefox 3的nsCookieService.cpp和

    Chrome的cookie_monster.cc为了透视实际的网站正在做什么,尝试使用> --save-cookies,--load-cookies和--debug来玩wget,看看发生了什么。

    实际上,大多数网站都使用旧版RFC规范中的Set->> Cookie与“主机”值的组合,隐式地没有前导点(如twitter.com)或设置域值(带有领先的点),并重定向到像www.example.com这样的服务器(就像google.com一样)。

    链接地址: http://www.djcxy.com/p/44891.html

    上一篇: Why does Chrome and Safari not see cookies for some sub

    下一篇: Local Storage vs Cookies