Что такое cookie (куки)?
- Категория: Браузер
- – Автор: Игорь (Администратор)
В рамках данного обзора, я расскажу вам что такое cookie (куки) и зачем они нужны.
Представьте себе, что вам приходилось бы при каждом открытии любого сайта с авторизацией (социальные сети и тому подобное) вводить логин и пароль. Было бы это удобно? Вряд ли. И это только лишь один пример. В реальности же, ситуаций, при которых хранение данных в браузере пользователя полезно, существенно больше.
Одним из самых первых подходов для решения подобных проблем был cookie (куки). Об этой технологии и пойдет речь далее.
Примечание: Данный материал предназначен для начинающих и обычных пользователей, хотя может быть полезен и более опытным.
Cookie (куки) - определение
Cookie, куки (сленг - "печеньки") - это данные, которые передаются веб-сайтом в браузер, с целью сохранения их в компьютере пользователя и обратной передачи при каждом открытии сайта. Иными словами, это как билеты в театр: вам их дают (сайт браузеру) и вы с ними приходите обратно (браузер сайту). Обычно, размер таких "печенек" сильно ограничен. Например, хранить фильмы или музыку не получится, однако небольшую, но полезную информацию можно.
Впервые данная технология появилась в далеком 1994 году в браузере Netscape. Со временем ее стали поддерживать остальные браузеры, такие как Internet Explorer, Opera, Chrome, Firefox, Яндекс.Browser и прочие. Настолько полезной она оказалась.
Примечание: Для понимания, большинство существующих сайтов в интернете используют cookie. Кстати, поэтому попытка отключить в браузерах поддержку куки может приводить к тому, что они не будут корректно функционировать.
Механизм куки
Механизм куки достаточно прост:
1. Вы открываете браузер, вводите адрес сайта и нажимаете "Enter".
2. Браузер посылает запрос веб-серверу, где расположен сайт, чтобы получить от него данные (содержимое веб-странички).
3. Веб-сервер отсылает информацию браузеру, а так же дополняет специальной командой вида "сохранить в куки такой-то параметр".
4. Браузер сохраняет этот параметр в cookie и отображает сайт.
5. При каждом последующем открытии странички сайта (или перезагрузке), браузер вместе с основными данными так же передает содержимое cookie.
При этом, если сайту необходимо изменить значение какого-то параметра, то он действует аналогично тому, как в шаге 3.
Со временем, стало понятно, что изменение данных cookie может быть необходимо и в самом браузере, а не только через сервер, как было описано выше. Поэтому доступ к редактированию так же стал возможен и из JavaScript (это специальный язык, благодаря которому содержимое странички может корректироваться без перезагрузки - двигающиеся блоки, красивая анимация и прочее). Грубо говоря, сайт прислал "сохранить в куки param1=321", а браузер в ходе действий пользователя изменил его значение с "321" на "123" без перезагрузки страницы.
Примечание: Советую ознакомиться с обзором устройство DNS сервера.
Классификации cookie
Разберем несколько самых основных классификаций куки:
По времени действия:
1. Сессионные cookie. Это куки, у которых не установлено время действия. Они хранятся только в памяти браузера и удаляются при его закрытии. Такие куки нередко применяются для внутренних технических нужд сайта или же сохранения временных настроек. Например, "размер области формы=1200 пикселей".
2. Постоянные cookie. Это куки, у которых задано время действия. Они сохраняются браузерами в файлах и не удаляются до тех пор, пока не истечет время действия. Такие куки могут так же применяться для технических нужд, однако чаще для хранения авторизации пользователей (см. что такое аккаунт) и подобного.
По типу появления:
1. Куки сайта. Данные cookie создаются конкретно тем сайтом (или с помощью JavaScript в браузере для него), который вы открываете. Например, открыли сайт site.ru, у вас в браузере появилась cookie, связанная с этим сайтом.
2. Сторонние куки. Эти cookie создаются в тех случаях, когда основной сайт открывает контент с другого сайта, такой как рекламный блок. Пример для понимания. Допустим, вы открываете site.ru, он отображает рекламный блок с site2.ru. Так как данные открываются браузером с сайта site2.ru аналогично тому, как и с сайта site.ru, то site2.ru может создавать собственные cookie. Иными словами, при открытии основного сайта, у вас может появиться две куки: одна для site.ru (куки сайта) и вторая для site2.ru (сторонние куки).
Плюсы и минусы куки
Основные плюсы куки:
1. Удобство. Решение многих технических проблем простым и удобным методом. При этом от пользователей ничего не требуется (например, вводить специального вида url или нечто подобное).
2. Распределение нагрузки. Абстрактный пример. Допустим, у сайта 1 000 000 пользователей. Для каждого пользователя необходимо хранить 10 настроек по 100 символов. Это означает, что сайту пришлось бы хранить порядка 1 000 000 000 символов (1 000 000 * 10 * 100), что чуть меньше 1 Гб данных (а если учитывать различные технические особенности, то эта цифра легко может увеличиться в 2 и более раз). А так, сайт ничего не хранит и у каждого пользователя хранится всего 1000 символов.
3. Возможность быстрой авторизации. Так как куки передаются браузером в веб-сервер сайта, то в них можно хранить специальный идентификатор, позволяющий осуществлять автоматических вход в сайт.
4. Для корректировки данных не нужно каждый раз перезагружать страничку. Если бы не существовало cookie, то каждое изменение настроек необходимо было бы сохранять в веб-сервере сайта, а это означает, что нужно было бы каждый раз перезагружать странички (чтобы данные отправлялись для сохранения). Куки же позволяют этого избежать.
5. Куки доступны из разных вкладок. Суть в том, что если вы открыли 2 или более вкладок одного сайта, то содержимое куки у них будет одним и тем же, даже если оно корректируется. Это позволяет производить взаимодействие между вкладками без перезагрузки страниц.
Основные минусы cookie:
1. Чужие компьютеры и прочие проблемы безопасности. Представьте, что вы пришли к знакомому, включили его компьютер и вошли в социальную сеть, установив галочку "запомнить". Это означает, что в его браузере была создана постоянная cookie для автоматического входа. Затем вы закрыли браузер, не выйдя из социальной сети, и пошли заниматься своими делами. Что случится в такой ситуации? Когда знакомый откроет эту социальную сеть, он автоматически войдет под вашей учетной записью. И это только лишь относительно безобидный пример.
2. Небольшой размер. В куках можно хранить не так уж много данных (лимиты крайне небольшие, цифры измеряются в единицах, десятках и сотнях килобайт), поэтому этот подход можно применить далеко не для всех задач. Справедливости ради, стоит отметить, что существуют такие технологии, как кэш и localStorage (некий аналог cookie, но позволяет хранить больше данных, как минимум, 5 Мб), но у них свои минусы и плюсы.
3. Хранятся в файлах на компьютере. Это означает, что, как и обычные файлы, их можно скопировать, удалить и прочее.
4. Пользователь может изменить куки. Возможность редактирования означает потенциальные проблемы. Абстрактный пример. Допустим, вы открыли сайт с игрушкой. Этот сайт сохраняет в cookie текущее количество набранных очков. Что мешает пользователю изменить это число и стать первым в рейтинге? Ничего. И это только лишь относительно безобидный пример.
5. Отслеживание действий пользователя. Подробнее об этом чуть далее.
Почему столько шумихи вокруг cookie?
Исходно, шумиха начала появляться из-за сторонних cookie (и некоторых хитрых технических подвидов). Конечно, с куками и до этого были проблемы, но они не вызывали столь большого отклика. В чем суть? Допустим, вы открыли сайт про котиков и в нем открылся рекламный блок другого сайта со случайным содержимым вида "самая лучшая хренорезка". Как вы уже знаете, в рамках этого в браузере была создана сторонняя cookie у рекламного сайта. Но, не только. Дело в том, что на сервере рекламного сайта так же было сохранено, что пользователь с этой cookie просматривал рекламу в сайте о котиках.
Далее вы открыли сайт о кулинарии и с удивлением обнаружили, что отобразился рекламный блок, но уже с текстом "самая лучшая когтеточка". Эта информация так же сохранилась на серверах рекламного сайта. Затем вы открыли сайт о компьютерах и увидели рекламу "борщ - великая еда". И так далее.
Вероятно, вы уже догадались, что сторонние куки позволяют не только отображать пользователям наиболее релевантную рекламу, но так же хранить историю посещений сайтов (отслеживать действия пользователей).
Примечание: Так же советую почитать обзор про ремаркетинг.
Теперь, вы знаете что такое cookie, а так же некоторые важные аспекты.
☕ Понравился обзор? Поделитесь с друзьями!
Комментарии / отзывы
1. Google Chrome
C:\Users\Пользователь\AppData\Local\Google\Chrome\User Data\Default (или Profile 1)\файл "Cookies" без расширения
2. Mozilla Firefox
C:\Users\Пользователь\AppData\Roaming\Mozilla\Firefox\Profiles\(тут буквы и цифры).Default User\ файл "cookies.sqlite"
3. Opera
C:\Users\Пользователь\AppData\Roaming\Opera Software\Opera Stable\файл "Cookies"
4. Яндекс Браузер
C:\Users\Пользователь\AppData\Local\Yandex\YandexB rowser\User Data\Default\ файл "Cookies"
5. Internet Explorer
в двух местах:
C:\Users\Пользователь\AppData\Local\Microsoft\Windows\INetCookies\
C:\Users\Пользователь\AppData\Roaming\Microsoft\Windows\Cookies\