Насколько мне известно в Google, максимальное количество файлов cookie зависит от браузера, однако я не могу найти последние данные о том, сколько файлов cookie разрешено в современных браузерах.
Мне нужно сохранить несколько большое количество пользовательских настроек в файлах cookie (для еще не зарегистрированных пользователей), так что было бы лучшим способом сделать это? (Кроме того, эти файлы cookie будут доступны как на стороне клиента, так и на стороне сервера php)
Из rfc :
не менее 300 файлов cookie
по меньшей мере 4096 байт на файл cookie (как измеряется размером символов, которые содержат нетерминал cookie в описании синтаксиса заголовка Set-Cookie)
не менее 20 файлов cookie на уникальный хост или доменное имя
Это минимальные требования. Команда IE6 этого не понимала. Все остальное имеет специфику браузера. Вам лучше написать тестовую платформу для тестирования каждого браузера. Проверяйте максимальный размер и количество с небольшими шагами (и проверьте, читаются ли они еще).
Кроме того, я, кажется, помню, что у apache возникла проблема с количеством файлов cookie. Не могу вспомнить, где я это видел.
Вот небольшой скрипт для проверки cookie: http://krijnhoetmer.nl/stuff/javascript/maximum-cookies/
Лучшим способом было бы не хранить их в cookie вообще.
Храните их в базе данных и храните ключ DB в файле cookie. Если это всего лишь несколько предпочтений, то безопасность не является проблемой.
Не забывайте, что куки будут отправляться с каждым запросом – если у вас есть 2kb данных cookie и загружается 10 изображений на странице, это дополнительные 22kb данных.
Количество файлов cookie:
Размер файла cookie Ограничения (4096 байт):
SRC: http://www.nczonline.net/blog/2008/05/17/browser-cookie- ограничения /
Я рассмотрел это сегодня, если вы хотите поддерживать большинство браузеров, то не превышать 50 куки на домен и не превышать 4095 байт на домен (т. Е. Общий размер всех файлов cookie <= 4095 байт)
Чтобы узнать больше об этом, вот тестовая страница и результаты .
IIRC, это 20 для большинства, больше для некоторых и 10 для одного конкретного браузера (опять же IIRC, IE5.5?). До 10 считается безопасным номером.
В любом случае вам не нужно больше одного – просто используйте его для хранения идентификационной клиентской части и храните все, что вам нужно, на серверной стороне от того же ID. Помимо чего-либо еще, чем меньше данных вы покидаете клиента, тем меньше их для удаления / коррумпирования / взлома / и т. Д.
Не уверен, какой смысл он делает с их точки зрения, но я видел веб-сайты в дикой природе , которые устанавливали более 450 куки и сообщали более чем 140 особым сторонним доменам .