Путь к файлу cookie и его доступность для страниц вложенных папок

Допустим, у меня есть веб-сайт с доменом: 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, верно?


person Nordin    schedule 23.02.2009    source источник


Ответы (3)


Если мы установим для файла cookie путь '/ subfolder1', будет ли файл cookie доступен для любой страницы или подпапки в папке?

да. Файл cookie будет доступен для всех страниц и подкаталогов в пути /subfolder1.

person Alex Barrett    schedule 23.02.2009
comment
См. stackoverflow.com/questions/8014024/set-cookie-wildcard-path для соответствующей спецификации. Для тех, кто не знал, файлы cookie доступны только по указанному пути и любым подпутьям, без суперпутей. Таким образом, файлы cookie для пути / folder / subfolder1 / недоступны для / folder /. Я немного ударился головой об этом. - person Anson Kao; 14.12.2011
comment
@SampleJACK ой, это прекрасно объясняет МОЮ проблему! - person RonLugge; 02.03.2013
comment
@Alex, так как же нам получить cookie для /subfolder1, но не /subfolder1/inner-folder? - person Pacerier; 05.03.2013
comment
@Pacerier, ответ, который мы комментируем, правильный, вы спрашивали что-то еще? - person Anson Kao; 06.06.2013
comment
@SampleJACK, как получить файл cookie для / subfolder1, но не для / subfolder1 / inner-folder? - person Pacerier; 06.06.2013
comment
Насколько я понимаю, это невозможно. Файлы cookie применяются ко всем нижним путям (если вы не установили другой файл cookie для нижнего пути, то есть в нашем случае в / subfolder1 / inner-folder) - person thepeer; 07.06.2017

если мы установим cookie на путь /subfolder1, будут доступны следующие страницы в примере:

www.example.com/subfolder1/page1.html
www.example.com/subfolder1/moresubfolder1/page1.html
и т. д.

Однако страница www.example.com/page1.html не будет доступна, поскольку она не принадлежит разрешенному пути.

person thefunfreak    schedule 14.07.2014

Чтобы устранить некоторую двусмысленность, повторно используя часть этого ответа:

Путь запроса соответствует заданному пути cookie, если выполняется хотя бы одно из следующих условий:

  • Путь к файлу cookie и путь запроса идентичны.
  • Путь к файлу cookie является префиксом пути запроса, а последний символ пути к файлу cookie -% x2F ("/").
  • Путь к файлу cookie является префиксом пути запроса, а первым символом пути запроса, который не включен в путь cookie-
    , является символ% x2F ("/").

Существует небольшая (но потенциально важная) разница между установкой cookie на путь /subfolder1 и путь /subfolder1/.

Если вы полагаетесь на первое, ваш путь запроса должен начинаться с символа "% x2F (" / ")" (косая черта), чтобы гарантировать желаемое поведение. Для примера взгляните на связанный ответ.

Установка пути cookie просто / позволяет избежать каких-либо крайних случаев, но, как вы говорите, cookie будет доступен для всего домена.

person Michael    schedule 13.05.2016
comment
самый информативный ответ - person CybeX; 03.10.2017
comment
в чем разница между /subfolder1 и /subfolder1/? Из связанного ответа единственное отличие: путь запроса /subfolder1KKK также соответствует пути файла cookie /subfolder1, верно? И разные браузеры могут вести себя по-разному, например. IE сопоставляет путь запроса /subfolder1KKK с путем /subfolder1 cookie, но firefox не будет, верно? - person frank; 22.04.2019