【发布时间】:2020-10-23 22:29:43
【问题描述】:
RFC 6265 提供以下algorithm 用于计算在Path 属性不存在的情况下cookie 应适用的默认路径:
用户代理必须使用与以下等效的算法 计算 cookie 的默认路径的算法:
让 uri-path 成为请求 uri 的路径部分,如果这样 部分存在(否则为空)。例如,如果 request-uri 只包含一个路径(和可选的查询字符串), 那么 uri-path 就是那个路径(没有 %x3F ("?") 字符 或查询字符串),并且如果请求 uri 包含完整的 absoluteURI,uri-path 是该 URI 的路径组件。
如果 uri-path 为空或者如果 uri- 路径不是 %x2F ("/") 字符,输出 %x2F ("/") 并跳过 剩下的步骤。
如果 uri-path 包含不超过一个 %x2F ("/") 字符, 输出 %x2F ("/") 并跳过剩下的步骤。
从第一个字符开始输出uri-path的字符 到但不包括最右边的 %x2F ("/")。
让我们以从https://example.com/a/b/c 接收没有Path 属性的Set-Cookie 标头为例。在这种情况下,uri-path 是 /a/b/c。没有尾部斜杠,因此,如果我正确解释规范,“最右边”的斜杠不是c 之前的斜杠,因此cookie-path 是/a/b?
另一种询问方式是,如果现代的、符合规范的浏览器从 https://example.com/a/b/c 接收到没有 Path 属性(或除 name=value 之外的任何属性)的 cookie,该 cookie 是否应该以对https://example.com/a/b的后续请求?
【问题讨论】: