Подтвердить что ты не робот

В спецификации HTTP, какая строка разделяет куки?

Точка с запятой ;, строка Cookie: или какая-либо другая строка?

4b9b3361

Ответ 1

Проверка файлов cookie в HTTP-запросе

Заголовок Cookie: имеет следующий синтаксис:

Cookie: <Name> = <Value> { ; <Name> = <Value> }

Следовательно, отдельные куки файлы разделяются точкой с запятой.

Настройка файлов cookie в ответе HTTP

С другой стороны, при настройке файла cookie в ответе есть один файл cookie для заголовка Set-Cookie::

Set-Cookie: <Name> = <Value> [ ; expires = <Date>] [ ; path = <Path> ] [ ; domain = <Domain> ] // etc…

Чтобы установить несколько файлов cookie, заголовок Set-Cookie повторяется в ответе HTTP.


Примечания:

  • Посмотрите здесь для учебника с примерами и RFC 6265 HTTP State Management Mechanism для нормативной ссылки, отображающей полную информацию о синтаксисе.
  • Устаревший RFC 2965 определил альтернативную пару заголовков Cookie2 и Set-Cookie2, которые были оставлены.
  • Устаревшие версии механизма управления государственными протоколами HTTP (RFC 2109 и RFC 2965) предоставил возможность свернуть несколько заголовков Set-Cookie (или Set-Cookie2) в один. Однако эта сворачивание не рекомендуется с помощью последней спецификации RFC 6265.

Ответ 2

Ответ - это знак запятой ,.

В разделе 4.2.2 RFC 2109 есть эта спецификация заголовка Set-Cookie

   set-cookie      =       "Set-Cookie:" cookies
   cookies         =       1#cookie

со следующим утверждением. Неформально заголовок ответа Set-Cookie содержит маркер Set-Cookie:, за которым следует разделенный запятыми список одного или нескольких файлов cookie. (Формальное значение # в приведенных выше обозначениях определено в RFC 733 в разделе A. НОТАЦИОННЫЕ КОНВЕНЦИИ, пункт 5

Конструкция "#" определяется, аналогично "*", следующим образом:

              <l>#<m>element

указывающий не менее <l> и не более <m> элементов, каждый из которых разделен одна или несколько запятых ( "," ).

Да, RFC 2109 устарел RFC 2965, который, в свою очередь, был устаревшим RFC 6265.
Нет, это ничего не меняет в этом контексте, поскольку

  • большинство существующих HTTP-серверов и клиентов поддерживают RFC 2109
  • RFC 6265 делает не запретить Set-Cookie складывание