При следующем чтении свойства cookie сохраненная пара «имя–значение» будет включена в список cookie_файлов документа. Значения cookie не могут содер_ жать точки с запятой, запятые или символы_разделители. По этой причине для кодирования значения перед сохранением его в cookie_файле, возможно, потре_ буется использовать JavaScript_функцию encodeURIComponent(). В этом случае при чтении значения cookie_файла надо будет вызвать соответствующую функцию decodeURIComponent(). (Нередко можно встретить программный код, использую_ щий для тех же целей устаревшие функции escape() и unescape().)
Записанный указанным способом cookie сохраняется в текущем сеансе работы веб_броузера, но теряется при закрытии броузера пользователем. Чтобы создать cookie, сохраняющийся между сеансами броузера, необходимо указать время жизни (в секундах) с помощью атрибута max_age. Это можно сделать, установив значение свойства cookie равным строке следующего формата:
name=value; max_age=seconds
Например, чтобы создать cookie, сохраняющийся в течение года, можно исполь_ зовать следующий фрагмент:
Кроме того, существует возможность указать время жизни cookie с помощью ус_ таревшего атрибута expires, в который необходимо записать дату в формате, воз_ вращаемом функцией Date.toGMTString(). Например:
var nextyear = new Date(); nextyear.setFullYear(nextyear.getFullYear() + 1); document.cookie = "version=" + document.lastModified +
"; expires=" + nextyear.toGMTString();
Аналогичным образом можно установить атрибуты path, domain и secure, дописав к значению cookie_файла строки следующего формата перед его записью в свой_ ство cookie:
476Глава 19. Cookies и механизм сохранения данных на стороне клиента
path=путь
domain=домен
secure
Чтобы изменить значение cookie, установите его значение снова, указав то же имя и новое значение. При изменении значения cookie_файла можно также переопре_ делить время жизни, указав новые значения для атрибута max_age или expires.
Чтобы удалить cookie, установите произвольное (возможно пустое) значение с тем же именем, а в атрибут max_age запишите 0 (или в атрибут expires запишите уже прошедшую дату). Обратите внимание: броузер не обязан удалять cookie не_ медленно, так что он может сохраниться броузером и после даты окончания его действия.