Может ли один домен иметь несколько файлов cookie? - PullRequest
17 голосов
/ 15 июля 2009

Может ли один домен создавать несколько файлов cookie в веб-браузере посетителя? Если да, когда пользователь посещает веб-сайт, какие файлы cookie будут доставляться на сервер? И почему веб-сайт генерирует несколько файлов cookie?

Я проверил настройки файлов cookie моего браузера Google Chrome и обнаружил, что существует несколько файлов cookie сайта nytimes.com.

Если сервер хочет сохранить несколько пар ключ / значение в файлах cookie, не могут ли они быть сохранены в одном файле cookie?

multiple cookies

cookies-1

cookies-2

Ответы [ 7 ]

15 голосов
/ 15 июля 2009

Да:)

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

Из википедии:

Соответствующее количество максимальных сохраненных файлов cookie на домен для основных браузеров:

  • Firefox 3.0: 50
  • Опера 9: 30
  • Internet Explorer 7: 50
9 голосов
/ 15 июля 2009

Может ли один домен создавать несколько файлов cookie в веб-браузере посетителя?

Да. Точное ограничение зависит от браузера, Internet Explorer принимал 20, но увеличил его до 50 .

Если это так, когда пользователь посещает веб-сайт, какие файлы cookie будут доставляться на сервер?

Все они

А почему веб-сайт генерирует несколько файлов cookie?

Так что вам не нужно сериализовать все данные (которые могут быть из не связанных частей системы) в одном cookie.

5 голосов
/ 10 ноября 2011

Файл cookie - это просто одна пара ключ / значение с необязательными настройками домена, пути, срока действия и доступа.

Причины разделения данных на отдельные файлы cookie включают в себя:

  • Легче поддерживать код - различные части сайта, которые должны сохранять состояние, не должны взаимодействовать друг с другом, чтобы объединить все это в один файл cookie.
  • Упрощенное управление пользователями - конечный пользователь (вы) может легче видеть, что хранится, и может выборочно удалять определенные файлы cookie.
  • Различного использования - например, cookie-файл, содержащий ваш сеансовый ключ, может быть помечен secure; httpOnly;, в то время как cookie-файлы, которые содержат настройки пользовательского интерфейса, все еще доступны через javascript.
  • Уменьшить размер запроса - если некоторые файлы cookie используются только для определенных страниц, можно использовать свойство path, чтобы они не отправлялись без необходимости для страниц, на которых они не нужны.
4 голосов
/ 20 мая 2013

Сервер может указать любое количество файлов cookie, и каждый файл cookie указан в своем собственном заголовке Set-Cookie.

Каждый заголовок Set-Cookie содержит хотя бы пару CookieName=CookieValue и может содержать другие пары key=value в дополнение к атрибуту secure или httpOnly. Эти дополнительные пары и атрибуты являются метаданными, относящимися к фактическому куки-файлу, и их нельзя использовать для установки дополнительных куки-файлов.

Когда клиент отправляет куки обратно на сервер, он объединяет их все в один заголовок Cookie. Это возможно, потому что клиент никогда не отправляет метаданные обратно, только имя и значение файла cookie.

Рассмотрим этот обмен HTTP:

GET / HTTP/1.1
Host: www.example.com

HTTP/1.1 302 Found
Location: http://www.example.com/index.html
Set-Cookie: UserID=12345; Expires=Wed, 09 Jun 2021 10:18:14 GMT; domain=.example.com;path=/index.html; httpOnly`
Set-Cookie: SessionID=6478; domain=.example.com;path=/index.html; httpOnly
Set-Cookie: foo=bar

GET /index.html HTTP/1.1
Host: www.example.com
Cookie: UserID=12345; SessionID=6478; foo=bar
1 голос
/ 15 июля 2009

Да, один домен может генерировать много файлов cookie. Максимальное количество варьируется в зависимости от браузера.

1 голос
/ 15 июля 2009

Когда вы пишете программу, вы используете только одну переменную? Нет, верно?

Здесь тот же принцип: куки - это просто пары ключ / значение, которые может использовать ваша программа (сервер / клиент).

0 голосов
/ 15 июля 2009

-Каждый сайт может создавать любое количество файлов cookie по своему желанию. (Но швы могут отличаться от браузера к браузеру)

- Когда пользователь посещает веб-сайт, все активные куки будут отправлены.

- Имеет смысл иметь несколько файлов cookie для хранения отдельных данных. В крайнем сравнении сравните куки с классами;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...