Зачем нам сеанс, когда у нас уже есть куки? - PullRequest
0 голосов
/ 18 мая 2018

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

  1. Когда пользовательзапрашивает веб-страницу, отправляет на ПК все файлы cookie, доступные для этого браузера.
  2. Если какой-либо из файлов cookie соответствует базе данных на стороне сервера, сервер отображает данные, в противном случае отправляет заданный файл cookie с сеансом.iD (необязательно для отправки создания сеанса и отправки идентификатора сеанса).

    a.Если сервер отправляет установленный cookie, клиент отправляет cookie во всех соответствующих запросах с идентификатором сеанса, только если доменное имя совпадает с сервером, на который отправил клиент.

Теперь я сомневаюсь, чтоЯ работаю на сайте электронной коммерции.И сервер отправляет количество товаров, добавленных в корзину, до тех пор, пока пользователь не выйдет из системы, теперь это можно сделать, используя только cookie, зачем нам вообще нужен сеанс?

Есть что-то, чего я не понимаю?

Ответы [ 3 ]

0 голосов
/ 18 мая 2018

Предпочтительно использовать сеансы, потому что фактические значения скрыты от клиента, и вы контролируете, когда истекает срок действия данных и они становятся недействительными.Если все это основано на cookie-файлах, пользователь (или хакер) может манипулировать своими данными cookie-файлов и затем воспроизводить запросы на ваш сайт.

0 голосов
/ 18 мая 2018

Потому что:

  • В этом сеансе могут быть и, вероятно, имеются конфиденциальные данные, например, id пользователя, идентифицирующие, кто пользователь.Если вы просто сохранили идентификатор пользователя в cookie, пользователь может манипулировать им и легко выдавать себя за всех остальных.Есть, конечно, способы смягчить это, но просто не позволить пользователю слиться с содержимым cookie (потому что это просто бессмысленный идентификатор сеанса) - это самый простой способ.
  • Это позволяет серверу управлять состоянием сеанса;например, если пользователь подозревает, что кто-то вошел в систему под своим именем на другом устройстве, он может аннулировать все другие сеансы (функциональность «везде выйти из системы»).
  • Возможно, вы храните много данных, и отправка туда и обратно в cookie-файлах при каждом запросе может стать довольно расточительной.
  • Возможно, вы захотите связать что-то вроде корзины покупок с учетной записью пользователя, а не только с пользователем.браузер, поэтому, когда они входят в систему на другом устройстве, их корзина покупок следует за ними.

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

0 голосов
/ 18 мая 2018

Обычный шаблон:

  • cookie содержит только уникальный идентификатор сеанса (но не содержит саму полезную информацию)

  • хранилище сеанса (на стороне сервера) содержит связанные данные для этого сеанса.Это может быть: а) очень большой и б) скрытый от пользователя / браузера и в) заслуживающий доверия (поскольку пользователь не может просто изменить его в браузере)

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