Этот вопрос проверяет понимание механизма передачи cookie между браузером и сервером, что необходимо для реализации аутентификации, сессий и отслеживания состояния в веб-приложениях.
Cookie — это небольшие фрагменты данных, которые сервер отправляет браузеру пользователя для хранения. Основная цель — сохранение состояния (state) между stateless HTTP-запросами, что позволяет реализовать сессии, персонализацию и отслеживание.
Передача происходит в два этапа через стандартные HTTP-заголовки:
Set-Cookie.Cookie запроса.Рассмотрим простой сервер, который устанавливает cookie при первом посещении и читает его при повторном.
const express = require('express');
const app = express();
// Маршрут для установки cookie
app.get('/set-cookie', (req, res) => {
// Устанавливаем cookie с именем 'user' и значением 'id12345'
// Добавляем параметры: Max-Age (время жизни) и HttpOnly (защита)
res.setHeader('Set-Cookie', 'user=id12345; Max-Age=3600; HttpOnly');
res.send('Cookie has been set!');
});
// Маршрут для чтения cookie из входящего запроса
app.get('/get-cookie', (req, res) => {
// Cookie из заголовка запроса доступны в req.headers.cookie
const cookies = req.headers.cookie; // Например: 'user=id12345; other=value'
res.send(`Received cookies: ${cookies}`);
});
app.listen(3000, () => console.log('Server running on port 3000'));Этот механизм широко применяется для аутентификации (сессионные cookie), хранения пользовательских предпочтений (тема, язык) и аналитики.
Вывод: Cookie — фундаментальный механизм для поддержания состояния в вебе. Их стоит применять для хранения небольших данных на клиенте, которые должны автоматически отправляться серверу, например, для управления сессиями пользователя. Для хранения больших объёмов данных или информации, не требующей отправки с каждым запросом, лучше использовать Web Storage (localStorage/sessionStorage).