哪些cookie属性唯一标识了一个cookie?

我试图确定HTTP服务器返回的cookie覆盖现有cookie与设置新cookie的场景。

说foo.example.com设置一个cookie:

Set-Cookie:SSID = abc; 域= .example.com的; 路径= / ABC; 到期时间=周三,2021年1月13日22:23:01 GMT; 安全; 仅Http

bar.example.com需要设置哪些属性才能覆盖此cookie而不创建新的cookie? 特别是,下面的响应头将覆盖原始cookie:

Set-Cookie:SSID = xyz; 域= .example.com的; 到期日=星期三,13-Jan-1990 22:23:01 GMT;

行为在浏览器中是否一致?


根据RFC 6265:

如果用户代理收到一个具有相同cookie名称,域值和路径值的新cookie作为它已存储的cookie,则现有的cookie将被驱逐并替换为新的cookie。

这个声明在RFC中已经超过10年了,只是略有改动,所以我想这种行为在所有浏览器中都是一致的。

在您的示例中,这两个Cookie具有不同的路径(第二个默认情况下假定为'/' ),因此它们将被视为不同的Cookie。 对于来自第一个cookie的路径中的页面,将会有两个具有相同名称的cookie,所以它们由浏览器根据RFC处理如下:

如果多个cookie满足上述条件,则它们在Cookie标头中排序,使得那些具有更多特定路径属性的标识先于那些不太具体的标识。

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

上一篇: Which cookie attributes uniquely identify a cookie?

下一篇: Magento Cookies Changing Prevent Frontend Login