如果在 set-cookie 的时候不设置 path 属性,那么 path 默认值是什么?

发布于 2022-09-12 00:37:28 字数 432 浏览 16 评论 0

背景:

  • 前端已经在请求头中设置withCredentials: true
  • 前端是单页应用,使用 hash 路由
  • 服务端的响应头已经配置了 Access-Control-Allow-Credentials:trueAccess-Control-Allow-Origin:前端域名

如果在 set-cookie 的时候不设置 path 属性,那么是不是默认 path=/ ?我以前一直觉得是这样的,但是昨天和后端联调的时候发现,如果 set-cookie 不设置 path 属性,那前端在根页面也无法取到这个cookie,浏览器在下一次请求时不会自动带上 cookie。

所以从现象来看,似乎一定要加上 path=/ 才能保证前端在该域名下能取到这个cookie,有谁知道这是为什么吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浊酒尽余欢 2022-09-19 00:37:28

根据 HTTP 标准 RFC6265,没有指定 set-cookie 的 path 属性时,默认为请求 uri 的路径。

例如:请求 http://example.com/api?id=1 ,那么 path 默认是 "/api"。

参考

https://tools.ietf.org/html/r...

5.2.4. The Path Attribute

If the attribute-name case-insensitively matches the string "Path",
the user agent MUST process the cookie-av as follows.

If the attribute-value is empty or if the first character of the
attribute-value is not %x2F ("/"):

  Let cookie-path be the default-path.

Otherwise:

  Let cookie-path be the attribute-value.

Append an attribute to the cookie-attribute-list with an attribute-
name of Path and an attribute-value of cookie-path.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文