русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Обзор cookies


Дата добавления: 2015-07-09; просмотров: 471; Нарушение авторских прав


 

Cookie – это небольшой объем именованных данных, сохраняемых веб_броузе_ ром и связанных с определенной веб_страницей или веб_сайтом.1 Cookies играют

1 Особого смысла у термина «cookie» (булочка) нет, тем не менее появился он не «с потолка». В туманных анналах истории компьютеров термин «cookie», или «magic cookie», использовался для обозначения небольшой порции данных, в частности, привилегированных или секретных данных, вроде пароля, подтвер_ ждающих подлинность или разрешающих доступ. В JavaScript cookie_файлы применяются для сохранения информации о состоянии и могут служить средст_ вом идентификации веб_броузера, хотя они не шифруются и никак не связаны с безопасностью (впрочем, это не относится к передаче их через защищенное со_ единение по протоколу HTTPS).


 

19.1. Обзор cookies
   

 

роль памяти веб_броузера, чтобы сценарии и программы на стороне сервера мог_ ли на одной странице работать с данными, введенными на другой странице, или чтобы броузер мог вспомнить пользовательские параметры или другие перемен_ ные состояния, когда возвращается на страницу, посещенную им ранее. Cookies первоначально предназначались для разработки серверных сценариев и на низ_ шем уровне реализованы как расширение протокола HTTP. Данные cookie ав_ томатически передаются между веб_броузером и веб_сервером, так что серверные сценарии могут читать и записывать значения cookie, сохраняемые на стороне клиента. Как мы увидим, JavaScript также может работать с cookie с помощью свойства cookie объекта Document.

 

Свойство cookie – это строковое свойство, позволяющее читать, создавать, изме_ нять и удалять cookies, связанные с текущей веб_страницей. Хотя cookie с перво_ го взгляда может показаться обычным доступным для чтения и записи строко_ вым свойством, фактически его поведение сложнее. Читая значение свойства cookie, мы получаем строку, содержащую имена и значения всех cookies, связан_ ных с документом. Можно создавать, изменять и удалять cookies, устанавливая значение свойства cookie. В следующих разделах этой главы подробно объясняет_ ся, как это делать. Однако для того чтобы работа со свойством cookie была эффек_ тивной, надо больше знать о cookies и о том, как они работают.



 

Помимо имени и значения каждый cookie имеет четыре необязательных атрибу_ та, управляющих временем его жизни, видимостью и безопасностью. По умол_ чанию cookies являются временными – их значения сохраняются на период се_ анса веб_броузера и теряются при закрытии сеанса пользователем. Чтобы cookie сохранялся после окончания сеанса, необходимо сообщить броузеру, как долго он должен храниться. Изначально для этого использовался атрибут expires, ука_ зывающий дату окончания действия cookie. И хотя этот атрибут по_прежнему может применяться, он начинает вытесняться другим атрибутом – max_age, кото_ рый определяет срок хранения cookie в секундах. Установка значения любого из этих атрибутов заставляет броузер сохранить cookie в локальном файле, чтобы он мог быть прочитан при следующем посещении пользователем веб_страницы. После того как будет достигнута дата окончания действия или истечет период max_age, броузер автоматически удалит cookie_файл.

 

Еще один немаловажный атрибут cookie, path, задает веб_страницы, с которыми связан cookie. По умолчанию cookie связывается с создавшей его веб_страницей и доступен этой же странице, а также любой другой странице из того же каталога или любых его подкаталогов. Если, например, веб_страница http://www.examp' le.com/catalog/index.html создает cookie, то этот cookie будет также видим страни_цам http://www.example.com/catalog/order.html и http://www.example.com/cata' log/widgets/index.html, но не видим странице http://www.example.com/about.html.

 

Этого правила видимости, принятого по умолчанию, обычно вполне достаточно. Тем не менее иногда значения cookie_файла требуется использовать на всем мно_ гостраничном веб_сайте независимо от того, какая страница создала cookie. На_ пример, если пользователь ввел свой адрес в форму на одной странице, целесооб_ разно сохранить этот адрес как адрес, применяемый по умолчанию. Тогда этим адресом можно будет воспользоваться при следующем посещении тем же пользо_ вателем этой страницы, а также при заполнении им совершенно другой формы на любой другой странице, где требуется ввести адрес, например для выставления


 

474 Глава 19. Cookies и механизм сохранения данных на стороне клиента

счета. Чтобы это можно было сделать, для cookie_файла задается значение path. Тогда любая страница того же веб_сервера, содержащая указанное значение в сво_ ем URL, сможет использовать cookie_файл. Например, если для cookie, установ_ ленного страницей http://www.example.com/catalog/widgets/index.html, для атри_ бута path задано значение "/catalog", этот cookie будет также виден для страницы http://www.example.com/catalog/order.html. А если атрибутpathустановлен в"/",то cookie_файл будет виден для любой страницы на веб_сервере www.example.com.

 

По умолчанию cookies доступны только страницам, загружаемым с того веб_серве_ ра, который их установил. Однако большим веб_сайтам может потребоваться воз_ можность совместного использования cookies несколькими веб_серверами. Напри_ мер, серверу order.example.com может потребоваться прочитать значения cookie, установленного сервером catalog.example.com. В этой ситуации поможет третий ат_ рибут cookie_файла – domain. Если cookie, созданный страницей с сервера catalog.ex' ample.com, установил свой атрибутpath, равным"/", а атрибутdomain– равным".example.com", этот cookie будет доступен всем веб_страницам серверов catalog.ex' ample.com, orders.example.com и любых других серверов в домене example.com.Если атрибут domain для cookie не установлен, значением по умолчанию будет имя веб_сервера, на котором находится страница. Обратите внимание, что нельзя сделать так, чтобы домен cookie_файла отличался от домена вашего сервера.

 

Последний атрибут cookie – это логический атрибут с именем secure, определяю_ щий, как значения cookie_файла передаются по сети. По умолчанию cookie не за_ щищен, т. е. передается по обычному незащищенному HTTP_соединению. Одна_ ко если cookie помечен как защищенный, он передается, только когда обмен ме_ жду броузером и сервером организован по протоколу HTTPS или другому защи_ щенному протоколу.

 

Обратите внимание: атрибуты expires, max_age, path, domain и secure не являются свойствами JavaScript_объекта. Далее в этой главе мы увидим, как установить эти атрибуты cookie_файла.

 

Cookies пользуются дурной славой у многих пользователей Всемирной паутины, поскольку сторонние производители часто недобросовестно применяют cookies, связанные не с самой веб_страницей, а с изображениями на ней. Например, cook_ ies сторонних производителей позволяют компаниям, предоставляющим услуги рекламного характера, отслеживать перемещение пользователей с одного сайта на другой, что вынуждает многих пользователей по соображениям безопасности отключать режим сохранения cookies в своих веб_броузерах. Поэтому, прежде чем использовать cookie в сценариях JavaScript, следует проверить, не отклю_ чен ли режим их сохранения. В большинстве броузеров это можно сделать, про_ верив свойство navigator.cookieEnabled. Если оно содержит значение true, значит работа с cookie разрешена, а если false – запрещена (хотя при этом могут быть разрешены временные cookie_файлы, срок жизни которых ограничивается про_ должительностью сеанса работы броузера). Это свойство не является стандарт_ ным, поэтому если сценарий вдруг обнаружит, что оно не определено, придется проверить, поддерживаются ли cookies, попытавшись записать, прочитать и уда_ лить тестовый cookie_файл. Как это делается, описано далее в этой главе, а в при_ мере 19.2 вы найдете программный код, выполняющий такую проверку.

 

Те, кто интересуется техническими подробностями работы cookies (на уровне про_ токола HTTP), могут обратиться к спецификации RFC 2965 на странице http://


 

19.2. Сохранение cookie
   

 

www.ietf.org/rfc/rfc2965.txt. Изначально cookie были разработаны в компанииNetscape и их первичная спецификация, подготовленная в Netscape, может по_ прежнему представлять интерес. Хотя некоторые ее части уже сильно устарели, она много короче и проще, чем формальный документ RFC. Отыскать этот старый документ можно на странице http://wp.netscape.com/newsref/std/cookie_spec.html.

 

В следующих разделах обсуждаются вопросы доступа к значениям cookie из Java_ Script_сценариев и порядок работы с атрибутами expires, path, domain и secure. За_ тем рассматриваются альтернативные способы сохранения данных на стороне клиента.

 



<== предыдущая лекция | следующая лекция ==>
Элемент Fieldset | Сохранение cookie


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.208 сек.