单页应用中Cookie缺失Path属性的计算与处理机制问询
RFC6265的规则
若服务器省略Path属性,用户代理将使用**请求URI路径组件的“目录”**作为默认值。
这一规则最初针对Set-Cookie响应头定义,但同样适用于document.cookie API。常规场景验证:
- 打开Chrome新标签页,直接访问
https://github.com/pulls/review-requested - 页面加载完成后,在开发者控制台执行代码:
document.cookie = "mycookie=114514" - 查看开发者控制台的Application标签,可见该Cookie的路径为
/pulls,符合RFC6265规定。
SPA场景下的不一致表现
但在单页应用(SPA,例如基于React开发的GitHub)中,结果会出现差异:
- 打开新标签页访问github.com,先删除之前创建的测试Cookie
- 点击右上角的Pull Request按钮,再点击“Review requests”按钮,不刷新页面,此时地址栏URL变为
https://github.com/pulls/review-requested - 在开发者控制台执行
document.cookie = "mycookie=114514",查看Application标签
此时尽管地址栏显示https://github.com/pulls/review-requested,但创建的Cookie路径却是根路径/。Firefox浏览器也存在相同表现。
疑问
- 通过
document.cookieAPI创建Cookie时,当Path属性缺失,具体是如何计算或处理的? - 是否有官方文档明确记录Cookie路径的计算逻辑?
内容的提问来源于stack exchange,提问作者kayochin
相关产品推荐
相关产品推荐

