Материал предоставлен https://it.rfei.ru

Использование cookie в РНР

Cookie представляет собой элемент данных, который веб-сервер с помощью браузера сохраняет на жестком диске вашего компьютера. Этот элемент может содержать практически любую буквенно-цифровую информацию (объемом не более 4 Кбайт) и может быть извлечен из вашего компьютера и возвращен на сервер. Чаще всего cookie используются для отслеживания хода сессий, обобщения данных нескольких визитов, хранения содержимого корзины покупателя, хранения сведений, необходимых для входа в систему, и т. д.

В силу своей закрытости cookie могут быть считаны только из создавшего их домена. Иными словами, если cookie, к примеру, был создан на it.rfei.ru, он может быть извлечен только веб-сервером, использующим этот домен. Это не позволяет другим веб-сайтам получить доступ к сведениям, на который у них нет разрешения.

Из-за особенностей работы Интернета многие элементы веб-страницы могут быть вставлены из нескольких доменов, каждый из которых может создавать свои собственные cookie. При этом такие cookie считаются сторонними. Чаще всего они создаются рекламными компаниями с целью отслеживания пользователей на нескольких веб-сайтах.

Поэтому большинство веб-браузеров позволяют пользователями отключать cookie либо от домена текущего сервера, либо от сторонних серверов, либо и от тех, и от других. К счастью, большинство пользователей, отключающих cookies, делают это только в отношении сторонних веб-сайтов.

Обмен cookie осуществляется во время передачи заголовков еще до того, как будет отправлен код HTML веб-страницы. Отправить cookie после передачи HTML-кода уже невозможно. Поэтому четкое планирование использования cookie приобретает особую важность. На рисунке показан типичный диалог с передачей cookie в форме «запрос-ответ» между веб-браузером и веб-сервером.

Диалог браузера и сервера в режиме «запрос — ответ» с использованием cookie

В этом обмене данными показан браузер, получающий две страницы.

  1. Браузер выдает запрос на извлечение главной страницы index.html с веб-сайта. В первом заголовке указывается файл, а во втором — сервер.
  2. Когда веб-сервер на webserver.com получает эту пару заголовков, он возвращает несколько своих заголовков. Во втором заголовке определяется тип отправляемого содержимого (text/html), а в третьем отправляется cookie по имени name, имеющий значение value. И только после этого передается содержимое веб-страницы.
  3. После того как браузер получит cookie, он должен возвращать его с каждым последующим запросом, сделанным в адрес сервера, создавшего cookie, пока у cookie не истечет срок действия или этот cookie не будет удален. Поэтому, когда браузер запрашивает новую страницу /news.html, он также возвращает cookie name со значением value.
  4. Поскольку на момент отправки /news.html cookie уже был установлен, сервер не должен заново посылать этот cookie и возвращает только запрошенную страницу.
Cookie, сессии и аутентификацияУстановка cookie