Сеансы хранятся в печенье.
Http - это протокол без гражданства. Каждый запрос на сервер работает изолированно. В запросе нет информации о предыдущем запросе.
Скажите, что пользователь с именем A
входит на сайт. Этот сайт работает с сеансом и устанавливает данные сеанса для пользователя. Внутренне сервер создает некоторое значение и связывает его с конкретным пользователем. Значение 12345
вычисляется и ассоциируется с пользователем A
. Сервер решает присвоить этому значению значение sessionId
. Он отправляет sessionId
в файл cookie, и этот файл cookie будет храниться в браузере пользователя. В следующий раз, когда пользователь A
сделает запрос, этот куки-файл будет отправлен на сервер. Сервер читает файл cookie sessionId
и находит его. Затем он видит, с каким пользователем является значение в этом cookie i.e 12345
. Он обнаруживает, что это значение связано с пользователем A
и поэтому его пользователь A
, который делает запрос.
Скажите, что этот файл cookie истекает, может быть по разным причинам. Любой пользователь удаляет файл cookie на своем конце. Или через определенные дни сервер очищает эту связь между пользователем и сеансом. В этом случае сервер не сможет узнать, кто является пользователем, выполняющим запрос. И, следовательно, весь поток логина пользователем, генерация генерации должна будет иметь место.
Так что, да, если сессия истекает, и веб-приложение требует аутентификации, пользователь должен войти в систему снова
зависит, вы можете реализовать запомнить меня функцию с печеньем. – mpm
С функцией 'запомнить меня', как это влияет на истечение и обновление сеанса? –
@ Kevin хорошо, у вас будет два куки, которые хранят уникальный 'id'. 'id' для сеанса ссылается на данные сеанса. ссылки «запомнить меня» на «userid», которые вошли в систему. Идентификаторы сеанса обычно становятся недействительными после определенного времени бездействия (например, 30 минут). информация «запомнить меня» и «id» будет, например, действительны в течение 3 месяцев. если сеанс 'id' не существует, а действительный' Remember me' 'id, тогда будет создан сеанс. но вам нужно проявлять особую осторожность, если вы используете функциональность «помнить меня» (если реализовано неверно, у вас будет большая проблема с безопасностью) –