Если вы хотите знать, что такое cookie, то первое, что вам нужно знать, — что такое HTTP.
HTTP — это протокол* без сохранения состояния, что означает, что каждый запрос, отправляемый клиентом на сервер, полностью независим. Сервер не может подтвердить идентификационную информацию текущего клиента, а также не может определить, является ли отправитель предыдущего запроса и отправитель этого запроса одним и тем же клиентом.
* Протокол — это система обязательных к соблюдению правил при обмене данными внутри или между компьютерами, принятых с целью совместимости программного обеспечения.
Чтобы отслеживать взаимодействие между клиентом и сервером, технология поддержки состояния HTTP-соединения стала Cookie и Session.
Cookie (куки) — это небольшой файл или фрагмент данных, который сервер отправляет в веб-браузер пользователя.
Браузер может сохранить его и отправить обратно с последующими запросами на тот же сервер. Обычно он используется, чтобы определить, поступили ли два запроса из одного и того же браузера.
Сервер также может изменять содержимое файла cookie по мере необходимости.
Важно: файлы cookie не являются междоменными. Файлы cookie на стороне клиента управляются браузером, гарантируя, что, к примеру, Google будет использовать только файлы cookie Google, а не файлы cookie Facebook, тем самым обеспечивая конфиденциальность пользователя. Браузер определяет, может ли веб-сайт использовать файлы cookie на основе имени домена.
Session (сессия или сеанс посещения)- это ещё один механизм для записи состояния сессии между сервером и клиентом, чтобы различать файлы cookie. Разница в том, что куки хранятся в клиентском браузере, а сессия хранится на сервере.
Сессия хранится на сервере, а идентификатор сессии будет храниться в файле cookie о клиенте.
Когда клиент отправляет запрос на сервер в первый раз, сервер создаёт соответствующий пакет данных сессии согласно соответствующей информации, представленной пользователем. Сервер отвечает на запрос клиента и возвращает браузеру уникальную идентификационную информацию SessionID.
Браузер сохраняет преобразованный SessionID в cookie, а cookie записывает, к какому доменному имени принадлежит SessionID.
Когда клиент посещает сервер во второй раз, запрос автоматически определяет, есть ли информация cookie под этим доменным именем.
Если это так, то информация cookie будет отправлена на сервер. Сервер получит идентификатор сессии из файла куки, а затем найдет соответствующую информацию о сессии в соответствии с идентификатором session.
Сессия безопаснее, чем куки. Сессия хранится на стороне сервера, а файл cookie хранится на стороне клиента.
Данные о статусе, хранящиеся в браузере, опасны, и не исключено, что информация о статусе в браузере может быть искусственно изменена с целью обмана сервера. Как только это произойдет, ваша конфиденциальность может быть утрачена, что приведёт к нежелательным потерям.
Куки поддерживают только сохранение строковых данных. Если для них заданы другие типы данных, их необходимо преобразовать в строку.
Сессия может хранить данные любого типа.
Cookie можно настроить на длительное хранение.
Время окончания сессии относительно короткое, и клиент перестанет быть допущенным, если сессия закончится.
Объём данных, содержащихся в одном файле cookie, не может превышать 4 КБ, что явно недостаточно для сложных данных состояния.
Данные хранилища session выше, чем cookie. Когда посещений слишком много, будет задействовано больше ресурсов сервера.
Читайте также:
Безопасность сайта, SSL и HTTPS
Очиcтка диска С от гигабайтов ненужных файлов браузеров
1 Комментарий
[…] Что такое куки и сессия? […]