Протокол HTTP не имеет состояния. Сеансы - это способ сохранить состояние клиента в HTTP-запросах. Вы можете сделать это с помощью встроенной в сеанс обработки платформы или сделать это самостоятельно с параметрами строки запроса. В любом случае некоторая концепция сеанса необходима для многих задач.
Ваш коллега, вероятно, не любит конкретную реализацию или не использует сессии по назначению. Если вам нужно сохранить информацию о конкретном клиентском соединении через HTTP-запросы, вам нужна некоторая форма сохранения сеанса.
Следующие вопросы зависят от реализации:
Нетипизированная природа переменных сеанса
Глобальная область действия переменных сеанса
Серверы балансировки нагрузки теряют сеансы
Перезапуск пулов / серверов приложений
Например, я чаще всего работаю в PHP и храню информацию о сеансе в реляционной базе данных. Так что мои переменные сеанса набраны. Балансировка нагрузки и перезапуск сервера не вызывают проблем сессий.
Этот более интересный:
Тайм-ауты сеанса, приводящие к потере состояния
Сессии чаще всего сохраняются с помощью файлов cookie. Они могут быть удалены клиентом в любое время. Но они также могут быть сохранены с помощью параметра строки запроса и, следовательно, никогда не превышают время ожидания на клиенте. Время ожидания сервера зависит от вас. Так что даже эта проблема зависит от конкретной реализации.
Давайте не будем отбрасывать всю концепцию сессий только потому, что нам не нравится конкретная реализация. Любая хорошая платформа веб-приложений будет способствовать правильному использованию сеансов для сохранения пользовательских логинов или сохранения чего-либо другого, специфичного для текущего посещения пользователя. Запись базы данных пользователя может (и должна) использоваться для хранения специфических для них вещей при входе в систему. Однако анонимные посетители могут иметь временную информацию, которую также стоит сохранить в своем сеансе, такую как короткий список последних посещенных страниц или предпочтение скрыть уведомление, которое они уже видели. Обычно для хранения сеанса подходит только небольшая временная информация.
using things like query string parameters instead
- В этом случае всегда всегда используйте параметры строки запроса, если это возможно. Использование сессии для этого типа параметра хрупко и может привести к странным ошибкам, когда у пользователей открыто несколько вкладок.