Ответ
Плюсы:
- Простота использования – работают через
document.cookie - Поддержка во всех браузерах
- Можно установить срок жизни (
expiresилиmax-age) - Автоматически отправляются с каждым запросом на сервер
Минусы:
- Ограничение в ~4KB на домен
- Уязвимы к XSS-атакам (если не
HttpOnly) - Могут быть прочитаны/изменены через JavaScript
- Отправляются с каждым запросом, увеличивая трафик
Пример работы:
// Установка
document.cookie = "username=John; max-age=3600; path=/";
// Чтение
console.log(document.cookie); // "username=John" Ответ 18+ 🔞
Вот это ж надо, блядь, сидеть и про кукисы размусоливать! Ну ладно, хуй с ним, разберём эту древнюю хуйню, на которой пол-интернета до сих пор стоит, как на костылях.
Плюсы, блядь (их не так уж и много, если честно):
- Простота, пиздец какая. Ткнул в
document.cookie— и всё, поехали. Сделано для распиздяев, внатуре. - Везде работают. Даже в древнем IE, который уже сам по себе музейный экспонат, ёпта.
- Срок годности есть. Можно сказать «живи, сука, час» (
max-age) или «умри в такую-то дату» (expires). - Лезют сами, наглецы. Каждый раз, когда ты к серверу стучишься, они туда же прицепляются, без спросу.
Минусы (а вот их — овердохуища, и это главное):
- Места мало, блядь! Всего-то ~4KB на весь домен. Как в коммуналке, внатуре. Хуй запихнёшь туда что-то серьёзное.
- Уязвимы, как голый мужик на морозе. Если не надеть на них шляпу
HttpOnly, то любой скрипт-шпиён их прочитает и украдёт (это XSS называется, если что). - Их все видят. JavaScript в браузере к ним доступ имеет, значит, любая левая библиотека может на них глаз положить.
- Толстые и неповоротливые. Таскаются с каждым запросом, даже если не нужны. Трафик гоняют, как последние троллейбусы.
Ну и пример, чтобы было понятно, о чём речь. Смотри, как это выглядит, эта архаичная магия:
// Запихнули в кукис имя
document.cookie = "username=John; max-age=3600; path=/";
// А теперь читаем, что наваяли
console.log(document.cookie); // выдаст "username=John"
Вот и вся философия. Просто? Проще некуда. Надёжно? Да хуй там! Как сидеть на табуретке с одной ножкой. Для каких-то простых задач — сойдёт, но для всего серьёзного сейчас есть куда более крутые штуки, вроде localStorage или тех же httpOnly куков, которые от клиента спрятаны. А эти — классика жанра, «дедушка на пенсии», блядь.