CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2002 ГОД

Коварное «печенье»

Зарема СЕЙДАМЕТОВА vzts@home.cris.net

(Окончание, начало см. в МК № 12–14 (183–185))

Формат, синтаксис, способы задания cookie

Получение значений cookie-наборов

Имена и значения cookie-наборов устанавливаются и хранятся при помощи свойства cookie объекта Document. Для сохранения неформатированной строки cookie в переменной необходимо воспользоваться следующей командой:

Для отображения ее на web-сайте применяется такая команда:

JavaScript сохраняет cookie-наборы в следующем формате:

Отдельные пары NAME=VALUE разделяются точкой с запятой или пробелом. После последнего значения точка с запятой не ставится. Процесс вывода cookie-набора упрощается за счет использования программы GetCookie, листинг которой представлен ниже.

В данном листинге строка myCookie помогает избежать граничных условий, при этом обязательно надо учесть, что все строковые имена cookie-наборов начинаются с пробела, а заканчиваются точкой с запятой. Благодаря этому не так трудно отыскать начало строки name=, пропустить ее и вывести все, что расположено между точкой и следующей точкой с запятой.

Установка значений cookie-наборов

Минимальное описание установки значений cookie-наборов поля Set-Cookie осуществляется с помощью параметра Name:

NAME=VALUE –– строка символов, исключающая перевод строки, запятые, двоеточия и пробелы. NAME –– имя cookie, VALUE –– значение. В этой комбинации находится минимальный объем информации, необходимый для установки cookie-набора. Однако есть еще параметры, необходимые для cookie. Полный список параметров, применяемых для спецификации cookie-набора, следующий:

name=value

expires=date

path=path

domain=domain_name

secure

Name и value могут быть любыми. Например, FavoriteColor=Blue или CurStat=1:2:1:0:0:1:0:3:1:1.

Самый простой вид для установки cookie-набора следующий:

В этой форме любое новое имя (name) добавляется в активный список cookie-наборов. Если данное имя уже было присвоено, первоначальное присваивание заменяется последним. Но существуют и исключения, которые можно реализовывать с помощью параметра path.

Параметр expires=date информирует браузер о времени существования cookie-набора. Например,

Данный формат основан на Internet RFC 822 (http://www.w3.org/hypertext/WWW/Protocols/rfc822/#z28).

После истечения установленной даты cookie исчезает. Если же этот параметр не установлен, то cookie сохраняется до закрытия браузера.

Следующий фрагмент кода устанавливает дату истечения cookie-набора через неделю.

В данном фрагменте использована функция toGMTString(), с помощью которой можно установить срок истечения действия cookie-набора (GMT –– Greenwich Mean Time).

Path=path –– этот параметр устанавливает подмножество каталогов, для которых действительно значение cookie-наборов. Ниже приведены три примера создания cookie-наборов с помощью атрибута path.

Пример 1

В этом примере cookie-набор foo доступен на каждой странице в каталоге windows и его подкаталогах.

Пример 2

Здесь cookie-набор foo доступен страницам в каталоге /windows/cookies, но не будет доступен страницам в каталоге /windows.

Пример 3

Здесь cookie-набор foo доступен каждой странице на всем сервере.

Domain=domain_name устанавливает доступ к другим web-серверам на данном сайте.

Реально сгенерировать такой cookie-набор, чтобы всем интернет-пользователям удалось его увидеть. Разработчик может только установить путь внутри домена, поскольку применение атрибута domain предусматривает использование, как минимум, двух периодов доменных имен, если ваш домен завершается на .com, .edu, .net, .org, .gov, .mil, .int (например, .yahoo.com). В противном случае, должно присутствовать хотя бы три точки.

Если этот атрибут опущен, то по умолчанию используется доменное имя сервера, на котором задано значение cookie-набора.

Secure сообщает браузеру о том, что данный cookie-набор должен отправляться только при условии безопасного соединения с сервером в защищенном режиме HTTPS (протокол передачи зашифрованной информации через Интернет).

Если параметр secure отсутствует, cookie-набор пересылается обычным способом.

Когда запрашивается документ с http-сервера, браузер проверяет, соответствуют ли имеющиеся cookie-наборы домену сервера и прочей информации. Если эти параметры совпадают, браузер посылает их серверу в виде:

Также интересно эта тема раскрыта в следующих статьях: Аликберов А. Зачем нужны cookies? (http://audio-video.narod.ru/document/Designer/cookie.htm), Аликберов А. Что такое cookies и как с ними работать (http://friends.pomorsu.ru/citforum/internet/html/cookie.shtml).

Преимущества, ограничения и проблемы, связанные с использованием cookie

Одним из основных преимуществ cookie-наборов является их «устойчивость». Если браузер клиента настроен на прием cookie, то эти наборы хранятся довольно долго. Благодаря этому сохраняется информация о последних посещениях и предпочтениях клиента. Свойство «устойчивости» обеспечивает доступ к cookie каждый раз, когда клиент возвращается на страницу.

Надо помнить, что имеются определенные ограничения. Обычно cookie-наборы хранятся на компьютере клиента в специальном файле cookie или каталоге Cookie (в зависимости от браузера). Так же, как и другие файлы, файл с cookie можно удалить как случайно, так и с определенной целью, а также защитить от записи. С помощью браузера накладываются ограничения на размер или количество хранимых cookie-наборов. Новые cookie-наборы могут перезаписывать информацию в старых наборах.

Поскольку cookie-наборы связаны с определенным типом браузера, то при переходе клиента с одного браузера на другой, могут возникнуть проблемы. Например, если коллекция cookie получена в результате работы в Netscape Navigator, то при замене его на Internet Explorer доступ к этим cookie будет утерян.

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

Надо иметь в виду, что нельзя установить неограниченной количество cookie-наборов для браузера. Последний имеет определенные ограничения:

количество cookie для сервера или домена не превышает 20;

может хранить до 300 значений cookie;

размер cookie не должен превышать 4 Кб.

Если первые два ограничения не выполняются, то удаляется первая по времени запись. При превышении лимита 4 Кб отрезается кусок записи в начале cookie и сохраняется его последняя часть, соответствующая предельному объему.

Также хочется обратить ваше внимание, что темы, поднятые в этой статье цикл, интересно описаны в книге Аллен Вайк. JavaScript. Энциклопедия пользователя / Пер. с англ. –– К.: Издательство «ДиаСофт», 2001. В главе «Персонализация и динамические страницы» части V «Избранные программные технологии» имеются описания преимуществ, недостатков, ограничений, а также использования cookie-наборов.

И в заключении укажем, где можно почерпнуть более детальную информацию о cookie:

страница спецификации cookie-наборов компании Netscape: http://www.netscape.com/newsref/std/cookie_spec.html;

браузеры, поддерживающие cookie-наборы: http://www.research.digital.com/nsl/formtest/stats-by-test/NetscapeCookie.html);

центр cookie-наборов: http://www.cookiecentral.com;

Robert’s Brooks’ Cookie Taste Test (http://www.geocities.com/SoHo/4535/cookie.html).

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov