расположение исходного кода firefox, который анализирует заголовок Set-Cookie?

StackOverflow https://stackoverflow.com/questions/3200736

Вопрос

Может кто-нибудь, пожалуйста, указать мне на исходный код Firefox, где анализируется заголовок Set-Cookie?Я хочу понять точное поведение.

Читайте дальше, если хотите знать, почему?Для различных ограничений в моем приложении мне нужно передать несколько файлов cookie внутри одного заголовка Set-Cookie.В RFC-2109 четко упоминается,

"Заголовок ответа Set-Cookie содержит маркер Set-Cookie:, за которым следует разделенный запятыми список из одного или нескольких файлов cookie.Каждый файл cookie начинается с пары ИМЯ=ЗНАЧЕНИЕ, за которой следуют ноль или более пар атрибут-значение, разделенных точкой с запятой."

Таким образом, я должен быть в состоянии передать следующий заголовок Set-Cookie

Установить-Cookie:имя1=значение1;attr11=attrval11;attr12=attrval12,имя2=значение2;attr21=attrval21;attr22=attrval22;

Это не работает.Однако следующее действительно работает

Установить-Cookie:имя1=значение1, имя2=значение2;attr1=attrval1;attr2=attrval2;

И я хочу присвоить разные атрибуты для разных файлов cookie.

[Обновление]

Реальные примеры:

Пример №1-

Установить-Cookie:печенье 1=значение1;Путь=/,cookie2=значение2;Путь=/

В этом случае firefox анализирует и получает из него первый файл cookie (имя которого "cookie1", а значение - "value1") (второй полностью игнорируется)

Пример№2-

Установить-Cookie:cookie1=значение1,cookie2=значение2;Путь=/

В этом случае firefox считает, что существует один файл cookie с именем "cookie1" и значением "value1,cookie2=value2".Это, опять же, не то, что было задумано.

Это было полезно?

Решение

Быстрая прогулка через mxr указывает на главную логику в nsCookieService::SetCookieInternal .Вы можете следить за ссылками назад и вперед по мере необходимости.Что касается вашей реальной проблемы, это может помочь, если вы дадите реальный пример заголовка.

Другие советы

Насколько я понимаю, браузеры реализуют стандарт несколько по-разному в отношении нескольких файлов cookie для каждого заголовка Set-Cookie.Однако вы можете отправить несколько Set-Cookie заголовки для установки значения нескольких файлов cookie:

Set-Cookie: name1=value1; attr11=attrval11; attr12=attrval12
Set-Cookie: name2=value2; attr21=attrval21; attr22=attrval22

Хотя есть ли какая-либо причина, по которой вы вручную добавляете заголовки к ответу вместо того, чтобы использовать все, что предоставляет ваш фреймворк (PHP, ASP.NET, RoR и т.д.)?

Ну, чтение от исходного кода. Понятно, что Firefox не реализует RFC-2109 в этом отношении и использует CR или LF вместо «, 'в качестве сепаратора cookie (линия уведомлений # 1934, 1959, 1990 в http://mxr.mozilla.org/mozilla-central/source/netwerk/cookie/nscookieservice.cpp ).Я попробовал оба на Firefox v3.6.6, CR работает, но LF нет.

Вывод: на Firefox я могу использовать CR вместо «, ', чтобы отделить файлы cookie.

Glitck: Нет из (CR, LF, ','), работает над интернет-исследователем.Теперь может кто-нибудь указать мне «исходный» код для IE, где я могу видеть, что они используют в качестве сепаратора cookie: -)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top