一个Web框架的cookie帮助程序三次设置一个具有不同Domain=
的cookie,并且没有人记得原因。
Set-Cookie: x=y; Path=/
Set-Cookie: x=y; Path=/; Domain=example.org
Set-Cookie: x=y; Path=/; Domain=.example.org
为什么使用不同的Domain=
设置相同的Cookie三次?这是一个现在无关的浏览器错误的解决方法,可以简化,还是今天仍然需要?
答案 0 :(得分:2)
我猜这是为了方便在同一会话中处理“www”和非www主机名...
第一个cookie域默认为“当前主机名”,可能是“www.example.org”。因为在有或没有www子域的情况下访问站点是很常见的,所以当会话恰好跨越两个主机名时,第三个cookie可以无缝地工作(一些负载平衡/缓存方案可能使用cache.example.org或www2或者东西)。也许是一个合理的默认值,但理论上可能会引起一些安全问题......
我猜测第三个cookie是被使用的,因为第二个cookie会被符合netscape规范字母的UA拒绝 - org tld中的cookie域必须至少有2个点......
任何一个域内失败的域名 七个特殊的顶级域名 下面列出的只需要两个时期。 任何其他域名至少需要 三。七个特别顶级 域名是:“COM”,“EDU”,“NET”, “ORG”,“GOV”,“MIL”和“INT”。
http://web.archive.org/web/20070805052634/http://wp.netscape.com/newsref/std/cookie_spec.html