我有一个为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的路径为/且已设置到期。
答案 0 :(得分:0)
如何指定子域名? Chrome预计子域名的Cookie会以点为前缀 例如域= .example.com的
您可能会发现此帖子很有用:https://serverfault.com/questions/153409/can-subdomain-example-com-set-a-cookie-that-can-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字符串。 (所以,x.y.com 域名匹配.y.com但不是y.com。) 但是现在example.com根据定义不会与.example.com进行域匹配。但是www.example.com(或域中的任何其他“非空名称”)> >将。 RFC2965理论上废弃了这个RFC,它决定了在Set-Cookie2操作中强制域的前导点。
正如@Tony所指出的,更重要的是现实世界。有关实际用户代理正在做什么的一瞥,请参阅
Firefox 3的nsCookieService.cpp 和
Chrome的cookie_monster.cc 要了解实际网站的效果,请尝试使用> --save-cookies, - load-cookies和--debug,看看发生了什么。
您可能会发现实际上大多数网站都使用了Set->的某些组合。 >具有“主机”值的旧RFC规范中的Cookie,隐含地没有前导点(如twitter.com所做)或设置域值(带有前导点)并重定向到像www.example.com这样的服务器(如google.com)一样)。