🤔
Что такое куки и где оно хранится в запросе? Это небольшие фрагменты данных, которые веб-сайты сохраняют на устройствах пользователей для хранения информации о сессии и отслеживания состояния. Куки используются для различных целей, таких как аутентификация пользователей, хранение настроек и предпочтений, а также отслеживание активности пользователей на сайте.
🚩
Основные свойства 🟠
Имя (Name)Уникальный идентификатор для каждого куки.
🟠
Значение (Value)Данные, которые хранит куки.
🟠
Домен (Domain)Домен, для которого куки действителен.
🟠
Путь (Path)Путь на сервере, для которого куки действителен.
🟠
Время истечения (Expiration/Max-Age)Дата или время, когда куки должен быть удален.
🟠
Безопасность (Secure)Указывает, что куки должны передаваться только через HTTPS.
🟠
HTTPOnlyУказывает, что куки недоступен через JavaScript, только через HTTP(S) запросы.
🚩Где хранятся 🟠
Установка куки с сервера (Set-Cookie)Сервер отправляет куки в ответе на запрос клиента с использованием заголовка
Set-Cookie.
HTTP/1.1 200 OK
Set-Cookie: sessionId=abc123; Path=/; Expires=Wed, 09 Jun 2023 10:18:14 GMT
Content-Type: text/html
🟠
Отправка куки клиентом (Cookie)Браузер автоматически добавляет соответствующие куки в заголовок
Cookie при каждом последующем запросе к серверу, для которого эти куки действительны.
GET /dashboard HTTP/1.1
Host: example.com
Cookie: sessionId=abc123
🚩
Пример использования Установка куки на сервере (пример на Node.js с использованием Express)
const express = require('express');
const app = express();
app.get('/', (req, res) => {
// Устанавливаем куки
res.cookie('sessionId', 'abc123', {
maxAge: 900000,
httpOnly: true
});
res.send('Куки установлены');
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});Доступ к куки на клиенте (пример на JavaScript)
// Установка куки
document.cookie = "username=JohnDoe; expires=Thu, 18 Dec 2023 12:00:00 UTC; path=/";
// Получение всех куки
let cookies = document.cookie;
console.log(cookies);
🚩Важные моменты🟠
БезопасностьКуки с флагом
Secure передаются только по HTTPS-соединениям. Куки с флагом
HttpOnly недоступны через JavaScript, что помогает защитить их от XSS-атак.
🟠Размер и количествоОбычно один куки не должен превышать 4KB, и на одном домене может быть установлено не более 20-30 куки.
🟠
КонфиденциальностьКуки могут содержать чувствительные данные, поэтому важно защищать их и использовать шифрование, если необходимо.
Ставь 👍 и забирай 📚 Базу знаний