86

假设我有一个域名为:www.example.com

如果我使用路径“ / ”设置 cookie,则该 cookie 将可以通过域中的所有页面访问,例如:

  • www.example.com/page1.html
  • www.example.com/subfolder1/page1.html
  • www.example.com/subfolder1/moresubfolder1/page1.html 等

如果我们将 cookie 设置为路径 ' /subfolder1 ',该 cookie 将可用于该文件夹下的任何页面或子文件夹吗?例如:

  • www.example.com/subfolder1/moresubfolder/page1.html

所以,如果不是,我想,我别无选择,只能为这些 cookie 使用路径“/”,对吧?

4

3 回答 3

84

如果我们将 cookie 设置为路径'/subfolder1',该 cookie 是否可用于该文件夹下的任何页面或子文件夹?

是的。该 cookie可用于路径的所有页面和子目录。/subfolder1

于 2009-02-23T04:44:43.000 回答
14

通过重用这个答案的一部分来消除一些歧义:

如果至少满足以下条件之一,则请求路径路径匹配给定的 cookie 路径:

  • cookie-path 和 request-path 是相同的。
  • cookie-path 是 request-path 的前缀,cookie-path 的最后一个字符是 %x2F ("/")。
  • cookie-path 是 request-path 的前缀,不包含在 cookie-path 中的 request-path 的第一个字符
    是 %x2F ("/") 字符。

/subfolder1在路径和路径上设置 cookie 之间存在细微(但可能很重要)的区别/subfolder1/

如果您依赖前者,您的请求路径需要以“%x2F ("/") 字符”(正斜杠)开头,以保证所需的行为。例如,查看链接的答案。

将 cookie 路径设置为简单地/避免任何边缘情况,但正如您所说 - cookie 可以在整个域中访问。

于 2016-05-13T13:09:51.477 回答
13

如果我们将 cookie 设置为 path /subfolder1,则可以访问示例中的以下页面:

www.example.com/subfolder1/page1.html
www.example.com/subfolder1/moresubfolder1/page1.html
等。

但是,该页面www.example.com/page1.html将无法访问,因为它不属于允许的路径。

于 2014-07-14T10:16:42.510 回答