【发布时间】:2014-06-25 23:38:32
【问题描述】:
我在域domain1.com 上有一个名为cookie1 的cookie,路径为/
几页之后,我得到了另一个具有相同名称和相同域但在不同路径/path 上的 cookie。
当浏览器请求/path 下的页面时,它会发送哪些cookie?其中哪一个算好?
【问题讨论】:
我在域domain1.com 上有一个名为cookie1 的cookie,路径为/
几页之后,我得到了另一个具有相同名称和相同域但在不同路径/path 上的 cookie。
当浏览器请求/path 下的页面时,它会发送哪些cookie?其中哪一个算好?
【问题讨论】:
正确答案是内特来自How to handle multiple cookies with the same name?的答案
TLDR 总结: 没有任何保证,因为它没有完全定义。我们可能只获得 /path 下的 cookie 或两者都获得。而且我们将获得它们的顺序也将是未知的。
【讨论】:
我自己也遇到了同样的问题。根据我的研究,如果您有两个名称相同但路径不同的 cookie,则将使用与当前页面路径匹配的 cookie。。
例如,如果您有两个 cookie:
'name=myCookie; path=/'
'name=myCookie; path=/Main/'
如果您在页面/Main/index.html,将使用第二个cookie。
另外,路径越具体,优先级越高。这个SitePoint article 声明:
如果多个同名 cookie 匹配给定的请求 URI,则一个是 由浏览器选择。路径越具体,越高 优先级。
所以如果你在页面/Main/something/whatevzdude/index.html,你也会得到第二个cookie。
【讨论】: