Safari 5 не отправляет все куки обратно на сервер - PullRequest
6 голосов
/ 29 июня 2010

Я вижу эту проблему с Safari 5 (на самом деле он был распространен, по крайней мере, начиная с 4.0.5), где кажется, что он не устанавливает куки правильно. Сайт отлично работает для Firefox, IE и Chrome.

Тем не менее, я могу проверить правильность установки файлов cookie, просмотрев список файлов cookie Safari, который он использует. В Windows 7 он хранится здесь: C: \ Users \\ AppData \ Roaming \ Apple Computer \ Safari \ Cookies \ Cookies.plist

Теперь сайт, над которым я работаю, довольно широко использует куки и хранится в разных доменах.

Скажем, например, сайт www.foo.com. Файл cookie для входа установлен на домен .foo.com. Кроме того, другие файлы cookie хранятся в домене www.foo.com, a.foo.com, b.foo.com и т. Д.

Safari, похоже, сбивается с толку при переходе на сайт www.foo.com и «забывает» отправлять все необходимые ему файлы cookie (www.foo.com, .foo.com).

Я не уверен, является ли это ошибкой с моей стороны (недопустимые символы в файле cookie) или это ошибка в Safari. Я хотел бы знать, если кто-нибудь сталкивался с этим и нашел

Спасибо!

Редактировать : Один файл cookie, который меня беспокоит, довольно большой, чуть меньше 4 КБ. Он содержит закодированную информацию, и символы, из которых он состоит, являются буквенно-цифровыми и / + _ =

Теперь, что странно, это то, что в зависимости от домена, на который настроен файл cookie, файл cookie работает сам по себе. Однако, когда пользователь входит в систему, добавляется другой файл cookie, и Safari, похоже, игнорирует первый. Safari отправляет файл cookie для входа в систему и состоит из буквенно-цифровых символов вместе с [] _ ​​\

Первоначально я думал, что это может быть конфликт домена. Первый файл cookie был установлен на www.foo.com, а файл cookie для входа был установлен на .foo.com. Однако я проверил эту теорию, установив их оба на .foo.com, и проблема все еще остается.

1 Ответ

11 голосов
/ 08 марта 2011

Взгляните на ограничения размера браузера здесь .Safari 5 имеет ограничение в 4 КБ на запрос.Таким образом, если общий размер всех файлов cookie для домена (включая связанные домены подстановки) превышает 4 КБ, вы начнете терять файлы cookie.Я полагаю, что логика заключается в том, что самый старый файл cookie будет сначала принесен в жертву, пока общий размер заголовка файла cookie не станет ниже 4 000.

В настоящее время у нас возникла проблема с этой проблемой, но мы также определили другой сценарий, в которомкуки теряются, хотя мы еще не поняли, почему это так.

Учитывая большой размер одного вашего куки, вполне вероятно, что следующий запрос добавляет новый куки, увеличивая общий размер надпредел.

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