2012-05-03 1 views
3

Может ли кто-нибудь дать мне хороший материал для чтения о том, что лучше в разных случаях?Что такое про и минусы куки-файлов против сеансов?

Я думаю, что когда у вас есть небольшой веб-сайт с небольшим количеством пользователей, вы можете пойти на сеансы, так как они хранятся на сервере. Но для большего количества пользователей лучше пойти с куки? И как они оба выигрывают по безопасности?

+2

Одно дело иметь в виду, если вы работаете на сайтах в ЕС или на сайтах, расположенных за пределами ЕС, но для компаний, базирующихся в ЕС, заключается в том, что 26 мая этого года вступает в силу новое законодательство о куках, что будет означать что мы не можем хранить данные в файлах cookie без согласия пользователей. –

+0

Значит, это означает добавление строки в терминах & условие, в котором говорится: «Мы будем хранить cookie на вашем компьютере, чтобы вы могли войти»? – Vincent

+0

Следует также иметь в виду, что, несмотря на то, что люди кричат ​​о «законе cookie», он не позволяет вам использовать другие методы для отслеживания пользователей (и сеанс, отслеживаемый с помощью cookie (как 99% +), использует файлы cookie). Кроме того, если файл cookie необходим для существенной функциональности, вам не требуется разрешение (например, они добавляют свой первый элемент в свою корзину покупок, вы можете начать сеанс и установить cookie для отслеживания сеанса). – Quentin

ответ

3

Сессии почти всегда используют файлы cookie для связывания сеанса с пользователем (хотя в каждом запросе можно передавать строки в строке запроса или данные формы).

Печенье:

  • должны быть включены в каждый запрос HTTP
  • имеют ограничения на количество данных, которые можно хранить
  • Expose данные, хранить пользователю (и тех, кто может нюхать их движение, если вы не используете SSL)
  • Разрешить пользователям редактировать данные непосредственно
  • Может быть установлен, чтобы сохраняться в течение некоторого времени

Сессии нет.

Но для большего количества пользователей лучше всего пойти с печеньем?

Если вы храните что много данных, то вы должны либо крошечный, крошечный жесткий диск или вы собираетесь превышать ограничения размера печенья ... так нет.

+0

Есть профи для печенья, хотя. Куки-файлы сохраняются для предустановки, известного количества времени, а сеансов нет. Файлы cookie сохраняются между соединениями, а сеансы - нет. –

+0

Некоторые вещи, перечисленные выше (включая упоминание о сохранении), не являются «минусами», а действительностью. Они могут быть желательными или нежелательными функциями в зависимости от контекста. – Quentin

6

Управление сеансом делится на две методологии: на стороне сервера и на стороне клиента. Использование cookie устанавливает доверие на стороне клиента, а также часть управления физическим состоянием вашего приложения. Не все браузеры поддерживают файлы cookie, и пользователи имеют возможность либо отключать файлы cookie на основе их усмотрения. Это создает уникальный дорожный блок перед многими разработчиками, поскольку они не могут полностью зависящие от системы клиентов, чтобы они активно принимали куки. Клиенты могут убивать активные файлы cookie в любое время. Потенциал использования куки-файлов заключается в том, что он управляется клиентом и может жить в клиентской системе, используется для отслеживания посещений вашего сайта и других данных, которые необходимо сохранить в течение длительных периодов времени.

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

+0

Хороший ответ! +1. –

2

Я думаю, вы должны использовать их в разных ситуациях, потому что у обоих есть плюсы и минусы. Самый большой сеанс сеансов - сеанс часто разрушается, когда браузер закрыт. С другой стороны, файлы cookie не уничтожаются так легко. Файлы cookie не всегда поддерживаются, хотя сеансы почти всегда есть.

Они оба небезопасны. И насколько я знаю, cookie использует немного большую производительность.Более безопасный (более безопасный, безопасный) способ хранения данных на стороне клиента - это проверка информации о сеансе в хэш, сохраненный в базе данных. Сохраните идентификатор сеанса с хешем в базе данных. И посмотри. в следующий раз. Если вы действительно хотите быть в безопасности. Используйте токен и генерируйте новый каждый раз, когда информация просматривается.

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

Редактировать: Итак, я побежал над своим сервером Apache и отслеживал оперативную память и активность процессора. (Нет значительных результатов). Также я проверил время, необходимое серверу для установки и отмены 1000 переменных (содержащих строку длиной 30 символов) в сеансах и в файлах cookie. Проводил все тесты пару раз и взял avg. результат. Вот результаты.

COOKIES 
    Set: 0.001863 seconds. 
    Unset: 0.004932 seconds. 

SESSIONS: 
    Set: 0.000494 seconds. (very consistent results) 
    Unset: 0.000502 seconds. (Again very consistent) 

Таким образом, сеансы проходят намного быстрее и более согласованно. Если вы можете использовать сеансы. Я бы определенно пошел на сеансы.

+0

У вас есть информация о том, как они оба не безопасны? – Vincent

+1

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

+0

Да, но тогда, где вы храните хеши для сравнения с хэшами из сеанса/cookiedata? – Vincent

Смежные вопросы