Ответ
Cookies (куки) — это небольшие фрагменты данных, которые сервер отправляет браузеру пользователя и которые браузер автоматически возвращает при последующих запросах. Они используются для управления состоянием (state) в stateless-протоколе HTTP.
Основные сценарии использования:
| Сценарий | Описание | Пример данных в cookie |
|---|---|---|
| Управление сессией | Идентификация пользователя между запросами. | session_id=abc123def456 |
| Персонализация | Сохранение пользовательских предпочтений. | lang=en; theme=dark |
| Отслеживание (Tracking) | Аналитика поведения, ретаргетинг в рекламе. | _ga=GA1.2.12345.67890 |
| Корзина покупок | Временное хранение данных между визитами. | cart_items=[id1, id2] |
Техническая реализация (HTTP-заголовки):
# Сервер устанавливает cookie
HTTP/1.1 200 OK
Set-Cookie: sessionId=e8bb43229de9; Path=/; Secure; HttpOnly; SameSite=Lax
Set-Cookie: preferred_lang=ru; Max-Age=2592000; Path=/
# Браузер отправляет cookie обратно при следующем запросе
GET /dashboard HTTP/1.1
Host: example.com
Cookie: sessionId=e8bb43229de9; preferred_lang=ru
Критически важные атрибуты для безопасности:
HttpOnly: Запрещает доступ к cookie через JavaScript (защита от XSS-атак).Secure: Передача cookie только по защищённому HTTPS-соединению.SameSite: Контролирует отправку cookie с cross-site запросами (защита от CSRF-атак). Возможные значения:Strict,Lax,None.Max-Age/Expires: Определяет срок жизни cookie.
Без cookies каждый HTTP-запрос был бы полностью анонимным, что сделало бы невозможной работу персонализированных веб-приложений, интернет-магазинов и систем аутентификации.