• 11520
  • 484
  • 16
Нравится блог?
Подписывайтесь!

Хранение данных в куках

Всем привет. Сегодня почитал вот этот пост, точнее комментарии к нему. Хочется обсудить хранение информации в куках. Какие есть плюсы, минусы, подводные камни?

Да, сам храню в куках шифрованную инфу, пока не заметил минусов.

OhShi
23 сентября 2010, 16:23
1169

Загрузка...

Комментарии

Что именно ты хранишь в куках? Пароль в шифрованном виде? )))
OhShi
0
0
Почти всё, что связано с пользователем. А от этого что-то зависит?
почти всё?
я не буду спрашивать для чего вы это храните в куки, так как сценария где это необходимо ещё не встречал.
Но вы знаете о том, что при каждом запросе куки посылаются на сервер? А это как минимум лишний трафик, и как миниму лишняя иформация которую сервер должен обработать при каждом запросе. В вашем конкретном случае возможно это не проблема и можно закрыть на это глаза, НО, оно ведь так не по умолчанию работает, вы ведь для этого специально код писали, а вот это уже мне совсем не понятно.
Знаю. Пока не вижу в этом ничего плохого. На что влияет пара лишних килобайт трафика?
"...сценария где это необходимо ещё не встречал."

"В вашем конкретном случае возможно это не проблема и можно закрыть на это глаза, НО, оно ведь так не по умолчанию работает, вы ведь для этого специально код писали, а вот это уже мне совсем не понятно."
"...сценария где это необходимо ещё не встречал."
При каждом запросе мне может придти некоторая информация о пользователе (через GET). Если она пришла - то я использую её для формирования ответа, а после сохраняю в куках, чтобы если в следующий раз ничего не придёт - опять использовать её.

"В вашем конкретном случае возможно это не проблема и можно закрыть на это глаза, НО, оно ведь так не по умолчанию работает, вы ведь для этого специально код писали, а вот это уже мне совсем не понятно."
Тут не понял. Что именно работает не по умолчанию? Код мне тоже в любом случае специально писать надо.
общепринятый способ(и на мой взгляд правильный) - это хранение данных в сессии на сервере и передача идентификатора сессии в куки или в каждом запросе. Все фреймворки так или иначе настроены на такой способ работы. Другими словами, для того чтобы сделать иначе, нужно специально писать для этого код.
Вот я и говорю, не видел ещё сценария(включая описанный вами) где нужно делать наоборот.
общепринятый способ(и на мой взгляд правильный) - это хранение данных в сессии на сервере и передача идентификатора сессии в куки или в каждом запросе
Т.е. надо хранить в сессии только потому, что так общепринято?

Все фреймворки так или иначе настроены на такой способ работы. Другими словами, для того чтобы сделать иначе, нужно специально писать для этого код.
Ничего такого не замечал, но могу сказать только за ZF.


А вообще ты кажется не понимаешь суть вопроса. Меня интересует вообще сравнение двух способов хранения не очень важной, быстро устаревающей информации, а не сложности реализации.

Я выбрал способ с куками потому, что мне кажется это будет дешевле в плане ресурсов, чем на каждый запрос проверять инфу в хранилище (сессия, БД - не важно какое). Но тестов я не проводил, так что с уверенностью сказать не могу, отсюда и эта тема.
"А вообще ты кажется не понимаешь суть вопроса"
вы меня простите, но у меня тоже самое мнение сложилось о вас.
Для хранения быстро устаревающей информации существует Cache. Если эта информация привязана к определённому пользователю, то существует понятие Session. Если вас смущает хранение сессий в базе данных, то существует Memcache и подобные решения.
Существуют общепринятые паттерны, и существуют они как раз для того, что бы вы работали над бизнес логикой а не изобретали велосипед. И паттерны такие какие они есть не спроста!
Да, паттерны применимы ни в 100% случаях. Есть приложения, настолько маленькие или созданные для тестированию какого либо концепта, что нет смысла тратить время на паттерны. Или же проект на сотлько огромен, что общепринятые правила там просто напросто неприменимы.
Если ваше приложение входит в первую группу, то нет смысла говорить о разнице, так как любой способ будет работать. Если ваше приложение входит во вторую группу, то так и говорите, сколько у вас одноврреммено максимальное колличество активых сессий, размер хранимых в сессиях данных и сколько запросов в секунду.
Если же ваше приложение входит в 99,99% других, то либо просто придержувайтесь best practices, либо опишите нестандартную ситуацию которую пытаетесь решить.
По поводу затрачиваемых ресурсов говорить сложно, так как ваш ответ на вопрос что именно вы храните в кукиз "Почти всё, что связано с пользователем" имеет достаточно растяжимые понятия.
Так же непонятно что за приложение у вас, если вы говорите что "всё что связано с пользователем" и "...не очень важной, быстро устаревающей информации" это одно и тоже.

Больше деталей!


Активных сессий (если бы они у меня были ;) - около 150К, запросов в секунду - где-то 180 днём.

Не совсем понимаю, зачем затрагивать специфику самого приложения. Меня интересует, чем способ хранения информации на клиенте хуже, чем хранение её на сервере? Сейчас так получается, что единственный минус кук - это дополнительные 4Kb (это максиммум, на деле - гораздо меньше) при запросе на сервер. Есть ещё минусы?
на мой взгляд, плюсы хранения сессий в кукиз: приложение получается полностью stateless; при использовании нескольких балансированных веб серверов нет необходимости в централизованном хранении сессий(хотя можно использовать что то вроде sticky sessions или например ServerIron); при большом колличестве активных сессий не тратится оперативная память (если конечно не использовать базу данных или что то вроде MongoDb, где использование оперативной памяти можно регулировать. опять же здесь вопрос в том как часто меняются данные в сессии, если это восновном чтение, то любой современный key/value data store справиться с задачей).

минусы хранения сессий в кукиз: дополнительный траффик - 4кб*180 = 720Kb/sec(1440Кб/sec при частом изменении данных в сессии и ещё больше по следующей причине); если ни сделать аккуратно то эти кукиз посылаются с каждым запросом для каждого ресурса(даже для статичных картинки, CSS,JS и т.д.) а это ещё больше трафика; если необходимо хранить большой объём данных то это становится проблемой; security - степень важности варьируется от типа хранимых данных; шифрование потребляет CPU.

Ещё несколько размышлений по этому поводу описано здесь: yuiblog.com
и так, получается основной плюс кукиз - это stateless service, основной минус - траффик.
Спасибо за статью - интересно и полезно. По крайней мере пока кука не вырастит до 500 байт волноваться не о чём (:
Зависит от того, что использовать. Если во фреймворке Yii, например, включить autologin в конфиге, то все, что пишется в сессию по приказу программера, еще и дублируется в кук. Хотя, может быть, я еще плохо разобрался. Тяжковато у меня что-то с ним знакомство проходит )))
В куках удобно хранить некую информацию, которая не составляет большого секрета (например, настройки блоков сайта - какие свёрнуты, какие развёрнуты). Такой подход позволяет минимизировать число запросов к базе данных (особенно, если подключение к базе "ленивое") и не каждый раз стартовать сессии (которые в похапе весьма тормозные).

Авторизационную информацию нужно хранить в сессии.

Оставьте свой комментарий

Спасибо за открытие блога в Yvision.kz! Чтобы убедиться в отсутствии спама, все комментарии новых пользователей проходят премодерацию. Соблюдение правил нашей блог-платформы ускорит ваш переход в категорию надежных пользователей, не нуждающихся в премодерации. Обязательно прочтите наши правила по указанной ссылке: Правила

Также можно нажать Ctrl+Enter

Популярные посты

Мысли вслух. Почему казахи перестали общаться с родственниками и ходить в гости?

Мысли вслух. Почему казахи перестали общаться с родственниками и ходить в гости?

Дастархан в те времена был скромен. Не было понятия «сынау» - осуждения кто как живет, какой в доме ремонт и т.д. Пока взрослые обсуждали задержку заработной платы, мы играли в армию, жмурки, строили городки...
socium_kzo
5 дек. 2016 / 15:19
  • 22287
  • 28
Верховный Суд презентовал комментарий к Гражданскому процессуальному кодексу

Верховный Суд презентовал комментарий к Гражданскому процессуальному кодексу

ГПК содержит 505 статей, многие из которых написаны несколько сложным юридическим языком. Однако теперь понять их можно проще и без обращения к юристу.
RuSnake
6 дек. 2016 / 10:31
  • 10849
  • 0
Японец о Казахстане: «Ваши девушки уж сильно себе набивают цену...»

Японец о Казахстане: «Ваши девушки уж сильно себе набивают цену...»

"Мужчины должны у вас тут права качать, ибо их процент в вашей численности населения уступает проценту женщин". Я машинально начала уверять, что у нас в стране таковых не имеется...
Sapientia
5 дек. 2016 / 10:52
  • 10205
  • 71
Распил 1 млрд долларов или спасение для Алматы? В 2017-м начнётся строительство БАКАД

Распил 1 млрд долларов или спасение для Алматы? В 2017-м начнётся строительство БАКАД

Конечно, Алматы заслужил эту дорогу. Невзирая на все издержки, которые могут возникнуть. Заслужил и как крупнейший город Казахстана, и как субъект, формирующий своими налогами около четверти всех...
merurg
7 дек. 2016 / 12:35
  • 7002
  • 19
Известный европейский фотограф показал истинную красоту казашек

Известный европейский фотограф показал истинную красоту казашек

С 26 по 30 ноября в Алматы гостил известный европейский фотограф Ян Маклайн в рамках реализации совместного проекта с Казахстаном. Подробности не уточняются, однако ходят слухи о том, что этот...
Muchacho55
7 дек. 2016 / 18:29
  • 7167
  • 8
10 причин, по которым я не смогла работать учителем. Не только в зарплате дело, ребята

10 причин, по которым я не смогла работать учителем. Не только в зарплате дело, ребята

Я почти год проработала в школе, и когда уходила оттуда, была самым счастливым человеком в мире. Тот год, честно говоря, я и сейчас вспоминаю с ужасом.
demonica
6 дек. 2016 / 17:21
  • 5597
  • 78
На самом деле дела плохи: казахстанские школьники на 49-м, а не на 12-м месте по математике

На самом деле дела плохи: казахстанские школьники на 49-м, а не на 12-м месте по математике

О том, как масс-медиа раздула миф о казахстанских вундеркидов в розовый воздушный шар, пока его не проколола правда-иголка. Получается, что казахстанские дети не могут применить теорию в практике...
ardakzhurynov
7 дек. 2016 / 0:17
  • 4978
  • 35
Почему Дональд Трамп назвал Казахстан чудом. Президент подтягивается по географии

Почему Дональд Трамп назвал Казахстан чудом. Президент подтягивается по географии

Трамп и не подозревает, что 16 декабря 1991 Казахстан не создал, а восстановил свою национальную государственность. Иначе бы он упомянул не только 25 лет, а больше чем 550 лет казахской истории.
Stehlikova
2 дек. 2016 / 9:02
  • 5249
  • 88
Молчание врачей. Дети ЮКО, заражённые ВИЧ 10-11 лет назад, узнают о диагнозе-приговоре

Молчание врачей. Дети ЮКО, заражённые ВИЧ 10-11 лет назад, узнают о диагнозе-приговоре

Как сообщают новостные издания, в ближайшее время в Южном Казахстане 102 детям в возрасте 11-12 лет сообщат об их страшном диагнозе. Все эти дети были заражены ВИЧ, причём большинство было инфицировано по вине врачей.
openqazaqstan
2 дек. 2016 / 13:57
  • 4545
  • 4