cookie в основном используется для поддержания некоторого состояния на стороне клиента между запросами в конкретном домене и / или пути. Сеанс в основном используется для поддержания некоторого состояния на стороне сервера между запросами в конкретном домене и / или пути.
Сессия обычно поддерживается файлом cookie. В PHP это файл cookie с именем PHPSESSID, а в JSP это файл cookie с именем JSESSIONID. Оба содержат длинное уникальное автоматически сгенерированное значение.
На стороне сервера есть соответствие между значением cookie и всеми прикрепленными объектами сеанса в памяти. При каждом запросе он проверяет значение cookie в заголовке запроса и выявляет прикрепленные объекты сеанса из сопоставления, используя значение cookie в качестве ключа. При каждом ответе он записывает значение cookie в заголовок ответа. Клиент, в свою очередь, возвращает его обратно в заголовок последующих запросов до истечения срока действия файла cookie.
Что касается авторизации / входа в систему, вы можете поместить зарегистрированный объект User
в сеанс на стороне сервера и проверять каждый запрос, если он есть, и обрабатывать его соответствующим образом. При выходе из системы вы просто удаляете объект User
из сеанса или аннулируете сеанс. В PHP вы можете получить доступ к сеансу $_SESSION
, а в Java / JSP - HttpServletRequest#getSession()
.
Принцип одинаков для всех других языков веб-программирования.