Принцип работы Cookies

Представим, что перед нами поставлена такая задача: нужно написать индивидуальный счетчик посещения для каждого клиента сайта нашей компании. То есть, чтобы пользователь знал, сколько раз именно он был на нашем сайте, а не видел общее количество посещений.Можно решить данную задачу двумя способами. Первый способ заключается в том, чтобы вести учет по IP-адресу. Для этого нужна база данных, состоящая всего из одной таблицы, структура которой примерно такова:IP-адрес    Посещения111..111.111.111      23111.123.215.211       100…Когда пользователь заходит на наш сайт, нам нужно определить его IP, найти в базе данных информацию о его посещениях, увеличить счетчик на единицу и вывести его в браузер. Определять IP-адрес клиента мы уже сумеем (переменная $REMOTE_ADDR), поэтому нам несложно написать такую программу. Однако при использовании данного способа рано или поздно «всплывут» две проблемы:- Для каждого IP-адреса нужно будет вести учет в одной таблице, которая, скорее всего, будет большой, а из этого следует, что мы нерационально используем процессорное время и дисковое пространство. Гораздо правильнее с нашей стороны будет использовать это пространство с большей пользой.- У большинства домашних пользователей IP-адреса динамические. То есть, сегодня у него адрес 111.111.111.111, завтра — 111.111.111.118. И попробуй потом определить, кто есть кто. Можно ввести регистрацию с использованием имени пользователя и пароля, но это еще больше увеличит нашу базу данных и создаст неудобства для клиентов.

Ясное дело, что данный способ нам не поможет. Остается использовать второй способ, который намного легче в реализации. Мы устанавливаем Cookie — переменную, которая будет храниться на диске у пользователя. Эта переменная и будет хранить информацию о посещениях. Она будет считываться сценарием при обращении пользователя к серверу. Выгода очевидна. Во-первых, нам не нужно хранить ненужную информацию о IP-адресах, во-вторых, нам не страшны динамические IP-адреса, поскольку данные о своих посещениях хранятся у клиента.

Теперь нам ясно, для чего используются Cookies — для хранения небольшой по объему информации у клиента, например, его логина (но ни в коем случае не пароля!), настроек сайта (цветовая гамма, язык, и т.д.) и другой информации.

Почему небезопасно хранить пароль в Cookies? Получив от сервера Cookie-переменную, браузер сохраняет ее на диске в открытом виде, то есть, не кодируя ее. Любой, кому не лень, может просмотреть значения этой переменной. Кроме того в некоторых браузерах Cookies вообще сохраняются в обыкновенном текстовом файле, а некоторые — даже позволяют просмотреть их. Например, в браузере Mozilla для просмотра Cookies выполните команду меню Инструменты => Настройки => Приватность.

 В этом разделе вы можете включить или отключить прием Cookies, установить максимальный срок хранения Cookie:- До истечения срока действия.- До закрытия Firefox.- Спрашивать каждый раз.

Нажмите кнопку “Показать Cookies”. Появится окно с информацией обо всех установленных Cookies.

Щелкните на имени установленной Cookie-переменной, чтобы получить информацию о ней.


Вы часто покупаете товары в Интернет–магазинах? Если да, тогда рекомендуем время от времени (скажем, раз в месяц) удалять все Cookies. Зачем? Вы увидите, что цены станут ниже. Дело в том, что некоторые Интернет–магазины (особенно, «буржуйские») грешат на доверии клиентов. Пару раз они могут продать вам товар по заниженным ценам, затем вы, зная, что это самый дешевый в Интернете магазин, будете покупать товары только у них. А они как раз и воспользуются Cookies — будут сознательно завышать цены на все товары, когда вы в очередной раз будете делать покупку, уверяя себя, что экономите деньги. При этом с помощью Cookies Интернет–магазины будут определять, кто вы такой и что вы раньше покупали.Однако не нужно совсем отключать Cookies. Некоторые сайты станут загружаться некорректно. Если вы боитесь, что через Cookies можно получить вирус, то не беспокойтесь: даже если кто-то передаст вам с помощью Cookies «вредный код», то система не сможет его запустить, так как Cookies хранятся в текстовом виде (а в Linux для Cookies не устанавливается право за запуск файла).Для отладки ваших сценариев, если они используют Cookies, я рекомендую использовать браузер Mozilla, поскольку он позволяет эффективно управлять Cookies.