RFC 6265 provides the following algorithm for computing the default path that a cookie should be applicable to in cases where a Path
attribute is not present:
The user agent MUST use an algorithm equivalent to the following algorithm to compute the default-path of a cookie:
Let uri-path be the path portion of the request-uri if such a portion exists (and empty otherwise). For example, if the request-uri contains just a path (and optional query string), then the uri-path is that path (without the %x3F ("?") character or query string), and if the request-uri contains a full absoluteURI, the uri-path is the path component of that URI.
If the uri-path is empty or if the first character of the uri- path is not a %x2F ("/") character, output %x2F ("/") and skip the remaining steps.
If the uri-path contains no more than one %x2F ("/") character, output %x2F ("/") and skip the remaining step.
Output the characters of the uri-path from the first character up to, but not including, the right-most %x2F ("/").
Let's take the example of receiving a Set-Cookie
header with no Path
attribute from https://example.com/a/b/c
. In this case, uri-path
is /a/b/c
. There is no trailing slash, and therefore, if I'm interpreting the spec correctly, isn't the "right-most" slash is the one before c
, and therefore the cookie-path
is /a/b
?
Another way of asking is, if a modern, spec-compliant browser received a cookie with no Path
attribute (or any attributes besides name=value
for that matter) from https://example.com/a/b/c
, should that cookie be sent in a subsequent request to https://example.com/a/b
?