是否最佳做法是在cookie路径的末尾设置斜杠?
是
路径
比…更好
路径/
以任何方式?
我发现两个版本都会产生不同的cookie,但我不知道哪个版本是首选. 最佳答案 就服务器端而言,这个问题(
https://bugzilla.mozilla.org/show_bug.cgi?id=469678)指出:
Per RFC 2109 the default path of a cookie when set by Set-Cookie is:
Defaults to the path of the request URL that generated the Set-Cookie response, up to, but not including, the right-most /.
所以这是一个不应该使用尾部斜杠的透视图.
RFC历史
RFC 2109,1997年2月,HTTP状态管理机制
https://tools.ietf.org/html/rfc2109
>请参阅4.3.1解释Set-Cookie
>默认为生成Set-Cookie响应的请求URL的路径,最多但不包括最右侧/.
不要包含尾随’/’.
RFC 2965,2000年10月,HTTP状态管理机制
已淘汰:2109
https://tools.ietf.org/html/rfc2965
>参见3.3.1解释Set-Cookie2
>默认为生成Set-Cookie2响应的请求URL的路径,最多包括最右边的/.
请包括尾随’/’.
RFC 6265,2011年4月,HTTP状态管理机制
已淘汰:2965
https://tools.ietf.org/html/rfc6265#section-5.2.4
>见5.1.4.路径和路径匹配
> -3.如果uri-path包含不超过一个%x2F(“/”)字符,则输出%x2F(“/”)并跳过剩余步骤.
> -4.输出uri-path的字符,从第一个字符开始,但不包括最右边的%x2F(“/”).
不要包含尾随’/’.
客户测试
在客户端上,如果您使用以下代码:
document.cookie="a=1"
你从每个浏览器检查devtools得到这些结果(我的网站有一个window.location.pathname =“/ selenium / tests / testCustomizeColumnsPage.html”)
Chrome/71.0.3578 /selenium/tests
Firefox/64.0 /selenium/tests/
Edge /selenium/tests/
IE11 devtools doesn't show cookies, think the path includes the trailing '/'
Chrome也错了吗?
其他参考:
> https://github.com/salesforce/tough-cookie/commit/d78d3a3593d1aea1d821d45492297ddf2e990568
> https://bugzilla.mozilla.org/show_bug.cgi?id=414582
> https://bugzilla.mozilla.org/show_bug.cgi?id=469678
> https://bugzilla.mozilla.org/show_bug.cgi?id=537207