QUESTION: Що таке cookie в JavaScript?
Поняття cookie в мові програмування JavaScript є механізмом, що дозволяє веб-додаткам зберігати невеликі обсяги текстових даних прямо в браузері користувача. Основним інструментом для роботи з ними виступає спеціальна властивість document.cookie. Важливо розуміти, що документ document.cookie повертає не масив або об'єкт, а єдиний рядок, що містить усі доступні куки поточного домену, розділені крапкою з комою і пробілом, наприклад, ім'я дорівнює значенню. Такий формат вимагає від розробника самостійного парсингу рядка при читанні конкретних параметрів.
Для встановлення або зміни нового значення використовується проста операція присвоєння, де ви задаєте рядок формату document.cookie = 'name=value'. Проте на практиці цього рідко буває достатньо, тому застосовуються додаткові параметри атрибутів, які задаються через крапку з комою. Атрибут expires задає конкретну дату видалення куки у форматі UTC, а max-age визначає час життя куки в секундах з моменту створення, що часто буває зручніше. Параметри path і domain визначають область видимості куки, обмежуючи її конкретним шляхом на сайті або певним піддоменом.
Існують і важливі обмеження безпеки. Так, флаг HttpOnly робить куки недоступними з JavaScript, захищаючи їх від крадіжки через XSS-атаки, оскільки такі куки можуть передаватися тільки сервером у заголовках HTTP. Крім того, накладається жорстке технічне обмеження: розмір однієї куки разом з ім'ям і всіма атрибутами не може перевищувати 4 кілобайти, а загальна кількість кук для одного домену також обмежена браузерами. Прикладом практичного використання може слугувати збереження обраної користувачем темної теми оформлення сайту, яка зчитується при повторному візиті, забезпечуючи персоналізований і комфортний користувацький досвід.