JavaScript·100 questions

Что такое cookie в JavaScript?

Answer

Понятие cookie в языке программирования JavaScript представляет собой механизм, позволяющий веб-приложениям сохранять небольшие объемы текстовых данных прямо в браузере пользователя. Основным инструментом для работы с ними выступает специальное свойство document.cookie. Важно понимать, что документ document.cookie возвращает не массив или объект, а единую строку, содержащую все доступные куки текущего домена, разделенные точкой с запятой и пробелом, например, имя равно значению. Такой формат требует от разработчика самостоятельного парсинга строки при чтении конкретных параметров.

Для установки или изменения нового значения используется простая операция присваивания, где вы задаете строку формата document.cookie = 'name=value'. Однако на практике этого редко бывает достаточно, поэтому применяются дополнительные параметры атрибутов, которые задаются через точку с запятой. Атрибут expires задает конкретную дату удаления куки в формате UTC, а max-age определяет время жизни куки в секундах с момента создания, что часто бывает удобнее. Параметры path и domain определяют область видимости куки, ограничивая ее конкретным путем на сайте или определенным поддоменом.

Существуют и важные ограничения безопасности. Так, флаг HttpOnly делает куки недоступными из JavaScript, защищая их от кражи через XSS-атаки, поскольку такие куки могут передаваться только сервером в заголовках HTTP. Кроме того, накладывается жесткое техническое ограничение: размер одной куки вместе с именем и всеми атрибутами не может превышать 4 килобайта, а общее количество кук для одного домена также ограничено браузерами. Примером практического использования может служить сохранение выбранной пользователем темной темы оформления сайта, которая считывается при повторном визите, обеспечивая персонализированный и комфортный пользовательский опыт.

Was this answer helpful?

More questions in this topic

Related questions from other topics