Работаем с cookie - 7 Января 2010 - Блог U.S.F. - U.S.F.
codingSEO/SMO
internetо блоге
Otherhtml/css
мысли

Работаем с cookie
07.01.10

Добрый вечер друзья. Сегодня хочу поговорить о такой интересной штуке, как cookie(в простонародье куки, печеньки). Немного теории...что такое куки? cookie - это небольшой объем именованных данных, которые сохраняются браузером и связаны с определенной страницей или документом... 



Данные в печеньке сохраняются в виде пары "имя=значение". Куки по умолчанию временные и хранятся во время сессии. При её окончании данные теряются. Но имеется у них несколько необязательных атрибутов, которые могут указать на время хранение куков, безопасность, версию, каталог и домен действия куков. Разберем по порядку.

Expires(max-age). На данный момент более приемлимым является использование max-age. Этот атрибут указывает на время жизни куков в секундах.При истечении срока хранения браузер удаляет cookie.

Path. Не менее важный атрибут, который по сути задает страницы с которыми связаны наши печеньки. По умолчанию они связаны со странец их создавшей а также другими документами из данного каталога и его подкаталогов. Тоесть если куки создались странице usf3.ru/catalog_1 то они будут видны страницам usf3.ru/catalog_1/films и usf3.ru/catalog_1/films/comedy, но не будут видны странице usf3.ru/catalog_2. Но ведь часто данные нужно использовать на достаточно большом пространстве подкаталогов. В это случает используем атрибут path. Если ему установить значение '/' то куки будут видны на любой странице на данном сервере.

Domain. По умолчанию куки доступны только тем страницам, расположенным на веб-сервере который их создал. Тоесть, если куки были созданы на video.usf3.ru, то на music.usf3.ru их посмотреть нельзя. Воспользуемся атрибутом Domain. Если в Path указать '/' а в Domain '.usf3.ru', то данные cookie будут видны на всех поддоменах домена usf3.ru во всех каталогах. 

Secure. Последнее их стандартных атрибутов. Указывает как будут передаваться данные в куки. По умолчанию они не защищены и передаются по обычному HTTP. Если этот атрибут установлен, то куки передаются по HTTPS.

Немного практики. Для этого я не буду использовать настоящие куки, а попробую лишь сымитировать их работу. Нажмите на кнопку ниже

в окне пусто? Правильно, куков еще нет. Допустим сервер внес туда данные о версии документа document.cookie='version='+document.lastModified; Что же вышло? В куках имеем

А потом еще и добавили данные о времене жизни(1 год), домене и каталогах

Кроме стандартных атрибутов в куки могут записываться персональные атрибуты, которые в последствии можно извлечь использовать. Например имя юзера, которое он вводит при регистрации.

В значении cookie не должно быть запятых, двоеточий и тд, поэтому зачастую данные перед отправкой кодируют через encodeURIComponent и декодируют через decodeURIComponent при приеме.(замена уставревшим escape/unescape). Строка имени 'май name ис-вася' будет выглядеть так

Вот и все ;)

ПОЧИТАТЬ ЕЩЕ:
Теги: JavaScript, cookie
1. Shutich [08.01.10 в 10:40]
Интересно было почитать. Но для реализации мне ещё далеко.

2. usf [08.01.10 в 12:19]
спасибо. да впринципе так не сильно сложно. единственную реальную сложность представляет извлечение нужного атрибута со строки. там через регулярные выражения. wacko

3. Oliver [08.01.10 в 19:14]
позновательно. недавно статью читал, кое что не понял, тут как раз разобрался(я про кодирование)

4. Scrunches [29.03.10 в 09:16]
Оригинально пишете. Очень интересно читать Ваши публикации.

5. usf [29.03.10 в 23:29]
спасибо, приятно слышать. вдохновляет писать еще happy

Имя *:
Email:
Ваш сайт:
Хотите что-то сказать?
Код *:


Хостинг от uCoz | Карта сайта