Цель Stack Overflow - предоставить базу данных ответов хорошего качества, поэтому я собираюсь сослаться на некоторый стандартный исходный код и статью, в которой приведены примеры:
http://www.codelib.net/javascript/cookies.html
Примечание. Код не содержит регулярных выражений, что значительно повышает эффективность.
Используя предоставленный исходный код, вы можете использовать файлы cookie следующим образом:
makeCookie('color', 'silver');
Это экономитпеченье, указывающее, что цвет серебристый.Срок действия файла cookie истечет после текущего сеанса (как только пользователь закроет браузер).
makeCookie('color', 'green', { domain: 'gardens.home.com' });
Сохраняет зеленый цвет для gardens.home.com
.
makeCookie('color', 'white', { domain: '.home.com', path: '/invoices' });
makeCookie('invoiceno', '0259876', { path: '/invoices', secure: true });
сохраняет цветбелый для счетов просматривается в любом месте на home.com.Второй файл cookie является безопасным файлом cookie и записывает номер счета.Этот файл cookie будет отправляться только на страницы, которые просматриваются через безопасные HTTPS-соединения, и сценарии на защищенных страницах являются единственными сценариями, которым разрешен доступ к файлу cookie.
Один хост HTTP не может хранить или читать файлы cookie другогоHTTP-хост.Таким образом, домен cookie должен храниться как минимум с двумя периодами.По умолчанию домен совпадает с доменом веб-адреса, который создал файл cookie.
Путь файла cookie HTTP ограничивает его определенными файлами на узле HTTP.Некоторые браузеры используют путь по умолчанию /
, поэтому файл cookie будет доступен на всем хосте.Другие браузеры используют все имя файла.В этом случае, если /invoices/overdue.cgi
создает cookie, только /invoices/overdue.cgi
вернет cookie.
При настройке путей и других параметров они обычно основаны на данных, полученных из переменных, таких как location.hrefи т. д. Эти строки уже экранированы, поэтому при создании файла cookie функция cookie снова не экранирует эти значения.Только имя и значение файла cookie экранируются, поэтому мы можем удобно использовать произвольные имена или значения.Некоторые браузеры ограничивают общий размер файлов cookie или общее количество файлов cookie, которые может хранить один домен.
makeCookie('rememberemail', 'yes', { expires: 7 });
makeCookie('rememberlogin', 'yes', { expires: 1 });
makeCookie('allowentergrades', 'yes', { expires: 1/24 });
эти файлы cookie запоминают электронную почту пользователя в течение 7 дней, а логин пользователя - в течение 1 дня.и разрешить пользователю вводить оценки без пароля в течение 1 часа (двадцать четвертого дня).Эти ограничения по времени соблюдаются, даже если они выходят из браузера, и даже если они не выходят из браузера.Пользователи могут свободно использовать другую браузерную программу или удалять куки.Если они это сделают, куки не будут действовать, независимо от даты истечения срока действия.
makeCookie('rememberlogin', 'yes', { expires: -1 });
удаляет куки.Значение cookie является излишним, а возвращаемое значение false означает, что удаление прошло успешно.(Истечение срока -1 используется вместо 0. Если бы мы использовали 0, cookie может быть восстановлен до одной секунды после текущего времени. В этом случае мы могли бы подумать, что удаление было неудачным.)
Очевидно,Так как cookie может быть удален таким способом, новый cookie также будет перезаписывать любое значение старого cookie с тем же именем, включая дату истечения срока действия и т. д. Однако cookie для полностью непересекающихся путей или доменов хранятся отдельнои одни и те же имена не мешают друг другу.Но в целом любой путь или домен, имеющий доступ к cookie, может перезаписать cookie независимо от того, изменяет ли он путь или домен нового cookie.
rmCookie('rememberlogin');
также удаляет cookie,делает makeCookie('rememberlogin', '', { expires: -1 })
.Это делает код cookie длиннее, но сохраняет код для людей, которые его используют, что, как можно подумать, экономит больше кода в долгосрочной перспективе.