Что такое Сookies и как его использовать

Категория: PHP.

mini-cookie-6028672

Вы возможно слышали о Cookies  (от англ. cookie — печенье), но что на самом деле мы можем сделать с ним?  В этом уроке мы сосредоточимся на основах Cookies   чтобы узнать об их функциональности при применении в различных web- приложениях. Вы также узнаете как использовать  Cookies в приложениях на PHP и JavaScript, уделяя при этом особое внимание вопросам безопасности, которые могут возникнуть при их использовании.

Что же такое Cookies.

Если говорить проще это текстовые файлы которые сохраняются на вашем компьютере. По запросу Web сервера браузер создаёт такие файлы и после чего Web сервер  может считывать и записывать информацию в файл Cookies. Хотя такой способ хранения информации может быть небезопасным, в частности того что эти файлы могут быть удалены пользователем либо кото другой может получить к ним доступ

Однако существует некоторые ограничения, которые помогут использовать Cookies наиболее безопасно.

  • Web- сервер может получить куки только те которые были установлены именно им то есть куки привязывается к определённому доменному имени.  Это значит что Cookies  которые были установлены например на  google.com не могут быть прочитаны yandex.ru, так и наоборот.
  • Согласно протоколу  HTTP размер Cookies не может превышать больше 4096 байт (4KB) каждый.
  • Также существует ограничение на количество куки  файлов  для одного домена, эта цифра может быть различна в разных браузерах, однако обычно используется ограничение в 20. Это необходимо для предотвращения засорения дискового пространства пользователя.
  • И ещё одно ограничения которое касается общего количества файлов Cookies на компьютере пользователя, в основном это 300 и эта цифра может быть другой в разных браузерах. В случае если лимит превышен, то более старые куки файлы удаляются в замен новым.

Cookies имеют срок годности. Срок хранения в основном устанавливаются самим web приложением (скриптом) и удаляются браузером по истечению срока годности. Если срок хранения не указан, то куки будут удалены после закрытия соединения с web сервером, это происходит когда пользователь закрывает окно сайта вкладку или полностью браузер. Такие файлы иногда называют Cookies сессии и используются для хранения временных параметров.

Давайте посмотрим как всё это выглядит на техническом уровне. Cookies передаются через протокол HTTP, этот протокол используется в браузерах для получения и отправки файлов на сервер. Ниже вы можете увидеть фрагмент сервер запроса для создания Cookies (этот фрагмент является частью ответа HTTP).

Set-Cookie: Name=content data; expires=Fri, 
31-Dec-2010 23:59:59 GMT; path=/; domain=.example.net 

Давайте разберём что к чему

  • Set-Cookie: команда для браузера о том что сервер хочет создать новый Cookies
  • Name — это имя куки. Для каждой оно должно быть разное.
  • content data – это данные которые должен содержать новый файл, это может быть как строка так и число но как уже говорилось размер недолжен быть больше 4kb.
  • Expires —  это установка срока годности создаваемого куки.
  • domain  и path – это имя домена в котором куки будут активны. Если куки были отправлены с ads.google.com то они будут работать только в этом под домене, а если с  google.com то они работают на всём домене google.com.

Дальше мы рассмотрим, как эти параметры можно использовать в web программировании.

Создание и чтение Cookies

PHP

Самое главное что нужно знать при создании Cookies в PHP, является то что вы должны установить его файлы перед отправкой каких либо данных в браузер. Это означает что вы должны всегда инициализировать новый Cookies до любого вывода. Это могут быть команды echo или print, а также или .

 
  

Всё это вам может быть знакомо за исключением переменных $secure и $httponly.Это сделано для безопасности. Например  $httponly  создаёт куки только через протокол HTTP в этом случае получения доступа к cookie  на стороне клиента через такие языки как JavaScript и VBScript невозможно. Конечно для создание Cookies может использоваться и меньший код.

 
 

Теперь когда Cookies создана, мы должны иметь возможность читать содержимое этого файла. В PHP это делается очень легко, есть такая переменная окружения называется $ _COOKIE [], кторая может быть использована для извлечения значения Cookies. Что бы её использовать просто введите имя куки между скобок [] например: