Cookies vs Sessions: В чем разница и как мы "остаемся залогиненными"?

GuDron

dumpz.ws
Admin
Регистрация
28 Янв 2020
Сообщения
10,794
Реакции
1,642
Credits
40,987
Cookies vs Sessions: В чем разница и как мы "остаемся залогиненными"?
photo_2026-03-16_08-54-15.jpg
Протокол HTTP не имеет памяти (stateless). Если вы ввели логин и пароль, при переходе на следующую страницу сервер вас уже «забудет». Чтобы этого не происходило, придумали механизмы сохранения состояния. Разбираем наглядную шпаргалку!

Как работают Куки (Cookies)?
(Верхняя часть схемы)
• Логин: Вы вводите данные, сервер их проверяет.
• Ответ: Сервер отправляет вашему браузеру cookie - небольшой фрагмент данных (например, информацию о пользователе или токен).
• Следующий запрос: Когда вы переходите на другую страницу, браузер автоматически прикрепляет эту cookie к запросу. Сервер читает её и понимает: "Ага, это снова тот самый юзер, пускаем!".

Суть: Сами данные хранятся на стороне клиента (в вашем браузере) и летают туда-сюда при каждом запросе.

Как работают Сессии (Sessions)?
(Нижняя часть схемы)
• Логин: Вы авторизуетесь на сервере.
• Создание сессии: Сервер создает сессию и сохраняет все ваши данные у себя (в специальной базе - Session Store).
• Ответ: Сервер отправляет браузеру cookie, но в ней лежит только уникальный ID сессии, а не сами данные!
• Следующий запрос: Браузер отправляет cookie с ID. Сервер смотрит в свою базу, находит по этому ID вашу сессию, проверяет её и выдает нужную страницу.

Суть: Данные хранятся на сервере. У клиента в браузере лежит только "билетик" (ID), по которому сервер его узнаёт.

Что выбрать?
• Куки хороши для некритичных данных (тема оформления, язык, корзина товаров для неавторизованных), так как они не нагружают память сервера.
• Сессии нужны для безопасности (авторизация, банковские операции). Злоумышленник не сможет подделать данные, так как они надежно лежат на сервере.

Как правило, в современных веб-приложениях они работают в паре: сессия хранит данные на бекенде, а куки доставляют ID этой сессии в браузер.