HTTP重定向请求发送Cookie的具体规则是怎样的?
问题1解答
不会被转发,且该逻辑不依赖Cookie的SameSite属性。
首先重定向本质是浏览器收到3xx响应后,向跳转地址发起全新的独立请求,并不会直接复用原请求的请求头内容。其次Cookie的核心匹配规则是:仅当请求目标的域名、路径与Cookie设置的Domain、Path属性匹配时,才会被浏览器添加到该请求的Cookie头中。重定向到https://b.com时,请求目标属于b.com域,和a.com域的Cookie作用域完全不匹配,因此浏览器根本不会读取任何a.com下的Cookie,自然不会携带原请求的a1=123; a2=456到b.com的请求中。
问题2解答
是否携带取决于b1、b2的SameSite属性以及重定向请求的方法:
- 如果Cookie的
SameSite为Strict:跨站跳转场景下不会携带,无论请求方法是什么 - 如果Cookie的
SameSite为Lax:仅当重定向请求为GET方法时才会携带(绝大多数3xx重定向默认会用GET方法发起跳转后的请求) - 如果Cookie的
SameSite为None且同时设置了Secure属性:跨站场景下也会正常携带
问题3解答
不存在这种替换场景。
因为a.com域下的a1Cookie根本不会出现在b.com的请求头中,请求b.com时Cookie头只会包含b.com域下匹配的Cookie,即使有同名的a1,也只会携带b.com下的a1值,不存在两个不同域的同名Cookie同时出现在同一个请求头里、需要覆盖的情况。
规范依据
上述规则均在Cookie相关标准中有明确定义:核心匹配规则来自RFC 6265,SameSite属性的行为规则来自RFC 6265bis(Cookie标准修订版)。
内容的提问来源于stack exchange,提问作者an0
相关产品推荐
相关产品推荐

