Cookie路径及其对子文件夹页面的可访问性

时间:2009-02-23 04:34:24

标签: cookies httpcookie

假设我有一个域名网站: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使用路径'/',对吗?

3 个答案:

答案 0 :(得分:62)

  

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

是。 Cookie 可供所有页面和子目录使用。

答案 1 :(得分:12)

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

  

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

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

答案 2 :(得分:8)

通过重复使用this回答的一部分来消除一些歧义:

  

请求路径路径 - 如果至少有一个路径匹配给定的cookie路径   以下条件成立:

     
      
  • cookie路径和请求路径完全相同。
  •   
  • cookie-path是请求路径的前缀,cookie路径的最后一个字符是%x2F(“/").
  •   
  • cookie-path是请求路径的前缀,以及请求路径中未包含在cookie中的第一个字符 -
      path是%x2F(“/”)字符。
  •   

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

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

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