Зачем нужны сессии?

Прочитав около 20 статей о сессиях, так и не понял для чего они нужны. На практике.
Разрабатываю веб-проекты на php около 3-4 лет и использую идентификацию посредством своих cookies, а также хранение данных в БД.
Механизм сессий, для меня выглядит странным и абсолютно ненужным.

Фактически вся суть механизма сессий сводится к записи одной куки PHPSESSID с уникальным идентификатором.
И далее служебный суперглобальный массив $_SESSION может быть заполнен любыми значениями. Для этого браузера он будет "ассоциироваться" с данной кукой - PHPSESSID.
Своего рода одна кука (ключ) у клиента, остальные "куки" на сервере. Доступ к ним по этой ключевой куке.

Почему для меня механизм сессий выглядит странным и абсолютно ненужным.

Возможный вариант (но так не делают).
--------------можно и не читать----------
Во первых всё это можно сделать используя куки. Все куки у клиента.
Ограничений нет. Максимальное кол-во кук около 2000. Пропускная способность интернета высокая, трафик почти безлимитный, кол-во информации в куках - почти ничего.
Можно так сделать. И это будет ничем не хуже сессий. Все то же, но на клиенте.
Это просто пример технической реализации. Я понимаю - безопасность.
Но её можно обеспечить https например, при передаче.
А хранение кук на клиенте и хранение этой же информации на сервере - это зависит от ПО/ОС клиента, настроек, ведь и сервер и клиент могут взломать. Это всего лишь 2 компьютера в сети.
------------

Как обычно я делаю.
Храню все данные, настройки пользователя в БД. Информация, которую нужно сохранить? Добро пожаловать в БД.)
Бд - это то, что создано для хранения данных. То, к чему можно быстро получить доступ, изменить и т.д.

Создаю одну уникальную куку для пользователя при авторизации.
Имя и пароль (хеши) верны? Ок - ты опознан. Получи куку.
Значение этой уникальной куки записывается (обновляется) в БД, "напротив" всех данных пользователя.
id-name-hash_pass-surname-unical_cookie
1-Федор-Sfr5ttrew-Иванов-sD56Jgffg9856Sdfg87656vfg
И теперь при каждом обращении php запрашивает эту куку. В БД найдена строка с этой кукой?
Да - значит мы можем предоставить пользователю его данные. Например вывести текст - привет Федор.

Собственно, зачем тогда сессии?
Может кто нибудь пояснить - для чего нужны сессии и привести пример?
  • Вопрос задан
  • 3689 просмотров
Решения вопроса 1
DevMan
@DevMan
У сессий только одно назначение - шаринг данных между запросами и различными компонентами.

Куки для этого не годятся по нескольким причинам:
1 и главная - куки будут доступны только после перезагрузки страницы.
2 ненужный трафик. это не смертельно, но только пока проект только для хомяков.
3 не секурно. можно конечно шифровать, но зачем?
4 куки не резиновые, у них есть лимит.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
Максимальное кол-во кук около 2000.

spoiler
XBr8b.png
Создаю одну уникальную куку для пользователя при авторизации.

поздравляем вы изобрели велосипеднаколеночный вариант, который из коробки предоставляется в виде более удобных для работы сессий.
Ответ написан
@sidni
Php Developer
Многие фреймверки все продумали за вас как и где хранить сессию, вся ваша логика может работать почти из коробки и оттестирована множеством разработчиков и пользователей как в плане удобства так и в плане секьюрности
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы