Если у меня есть много настроек, которые я хочу сохранить в cookie, должен ли я создавать несколько файлов cookie с одним параметром каждый или один большой файл cookie с несколькими параметрами в сериализованном массиве или что-то еще?
Существуют ли какие-либо плюсы и минусы для любого подхода? Что делают большинство людей?
Ну, в основном мы делаем сеансы – отправляем один файл cookie с идентификатором для пользователя и сохраняем все значения параметров на сервере. Но если я действительно не хотел делать сеанс по какой-то причине, я полагаю, что я, вероятно, сделаю единственный куки-файл из-за его создания меньшего сетевого трафика, если все будет сделано правильно.
Хорошая причина иметь отдельные куки-файлы, поэтому каждый из них не зависит от других, то есть индивидуальный файл cookie может быть истек, не затрагивая других, что невозможно, если у вас есть все, что хранится в одном большом файле cookie.
Ваши варианты:
Сессии PHP – cookie не требуется. Сохраните все нужные данные. После закрытия браузера или закрытия сеанса требуется новая аутентификация.
Персистентные сеансы – один файл cookie с одним значением, который является либо ключом сеанса, который используется для доступа к сохраненным сеансам, либо используется для доступа к таблице базы данных с информацией о сеансе. Вы можете хранить все данные, которые хотите, и у вас есть возможность не беспокоиться о том, чтобы все время подписываться.
Cookie Only – Сохранение нескольких значений в cookie не всегда является лучшим из идей. Зачем? 1) Cookies небезопасны и могут быть прочитаны кем угодно. 2) поддержка нескольких куки-файлов в вашем приложении может быть источником будущих ошибок. 3) В зависимости от клиента / браузера, чтобы предоставить вам точные данные, никогда не бывает хорошо. Если вы используете куки-файлы, убедитесь, что они имеют как можно больше света.
Большие куки только дают вам боль в животе. Ешьте торт вместо этого.
Я бы предпочел сериализованный массив …. Куки-файлы – это файлы, хранящиеся на машине клиента или на сервере, поэтому лучше.