Cookies — печем печеньки

Автор: Андрей Косяк Дата публикации: 13.12.2010

cookies - это печеньки"Вы еще не печете? Тогда мы идем к Вам!"

С описанием того, какие вкусные печеньки есть у вашего браузера в "закромах", можно ознакомиться в нашей статье «Cookie браузера», а в этой статье мы замешаем тесто для дальнейшей выпечки печеньков собственного приготовления :).

Ты видишь куки? ...а они есть!

Любой приличный браузер позволяет просмотреть все установленные для него куки (устанавливается именно для браузера). Если Ваш браузер не установлен только-что "с нуля", и уже успел попутешествовать по просторам сети, то в нем гарантированно уже присутствует добрых пару десятков куков. Давай взглянем как они выглядят. В зависимости от браузера, следуем:

  • Firefox — Инструменты -> Настройки -> Приватность -> Показать куки
  • Opera — Меню -> Настройки -> Общие настройки -> Cookies -> Управление cookies
  • Chrome — Настройка и управление -> Параметры -> Настройки содержания -> Файлы cookie -> Показать cookie и другие данные
  • IE8 — Сервис -> Свойства обозревателя -> Общие -> Параметры(в разделе История просмотров) -> Показать файлы

Я приведу пример из мною используемого браузера (Chrome): во всех остальных это окно будет примерно такое же. Нажав кнопочку/вкладку "Показать..." увидим список доменов, куки которых установлены, а развернув одну из записей, увидим список самих куков:

смотрим установленные cookies в Chrome

Выбрав из списка интересующую куку, тут же увидим всю информацию о ней (см. скрин):

  • Имя: bm_lang — имя куки;
  • Содержание: ru — хранимая информация;
  • Домен: .bigmir.net — домен, в котором действительна кука;
  • Путь: / — путь установки куки;
  • Отправить для: любой тип соединения — использование безопасного каналу;
  • Создано: воскресенье, 5 декабря 2010г. 14:46:54 — время, когда кука была установлена;
  • Срок действия истекает: четверг, 3 февраля 2011г. 14:46:54 — время, когда кука "прикажет долго жить".

Cookie — это текст

И так cookie (кука) — это пара «имя-значение» в виде обычного текста. Весь же перечень cookies хранится в текстовом файле на жестком диске пользователя, как правило, где-то в глубинах папки Documents and Settings на диске С (актуально для пользователей Windows). Нам же, по большому счету, в подробностях это знать и не нужно.

Ограничения

Из соображений безопасности на куки накладываются некоторые ограничения. Вот самые принципиальные:

  • Всего куков может быть не более 300 штук (300 пар имя-значение). При превышении лимита самые старые файлы перезаписываются.
  • Размер одной куки не может превышать 4кб. При превышении самые старые байты перезаписываются.
  • От одного домена (второго уровня, включая поддомены) может быть установлено не более 20 куков.
  • Для конкретного сайта будут доступны только те куки, которые им и были установлены.

Примеры применения cookies

Из вышеприведенного скрина видно, что срок жизни куки — 3 месяца, а также явно видно (и по названию и по содержанию) какую информацию она хранит и для какой цели (это далеко не всегда можно визуально определить). А хранится в этой куки язык, т.е когда-то, а если быть точным 5 декабря 2010 года, я побывал на сайте bigmir.net, возможно выбрал язык или сайт сам определил меня как русскоязычного пользователя, и тут же установил мне куку, которая в течении трех месяцев будет помнить мой выбор. А это значит, что в течении трех месяцев мне не нужно будет заходя на этот сайт снова выбирать язык. Сайт, прочтя свою куку, сразу же представит мне информацию на нужном языке.

"В кассу" окажется пример еще одного применения куков. Представим интернет-магазин: чтобы ты смог купить товар владельцу магазина нужно знать о тебе некоторую информацию: имя, телефон, адрес доставки. Обычно необходимый минимум инфы пользователь отправляет магазину во время регистрации. Но не все любят долгий и скучный процесс регистрации. Да и при каждом последующем посещении магазина авторизация на сайте тоже не будет способствовать удобству ленивых пользователей, а значит и продажам. Поэтому сейчас обычное дело — позволить пользователю совершить покупку без регистрации, заполнив при оформлении заказа небольшую форму:

заполненная форма из cookies

А чтобы пользователь при повторном заказе свои данные больше не заполнял, их можно запомнить в cookies, и в автоматическом режиме помочь с этим делом покупателю::

заполненная форма из cookies

Необязательное поле я, с большой вероятностью, бы проигнорировал и шустренько нажал бы кнопочку сабмита. Т.е. грубо говоря, время проведенное на последней странице сократилось бы, примерно, от 30-40 до 5-10 секунд. Чего еще надо? Юзер (я) остался доволен, и обязательно вернется еще в этот магазин, поскольку явно увидел, что пытку формами на этом сайте к нему применять уже не будут.

Подводя итоги можно сказать, что куки можно и нужно применять, но при этом не злоупотреблять и внимательно продумывать что, где и когда сохранять. Нужно помнить, что куки хранятся на винчестере пользователя, а раз так — это потенциальный объект посягательств недоброжелателей :)

Куда дальше