Подтвердить что ты не робот

Что такое файлы cookie и сеансы, и как они связаны друг с другом?

Я пытаюсь понять куки и сессии профессионально. Я знаю, что когда браузер подключается к серверу, сервер "просит" браузер "вставить" cookie с помощью "phpsessid" в папку cookie клиентского браузера.

Теперь, когда у нас есть "phpsessid", если клиент входит на сервер, браузер отправляет на сервер "phpsessid", и сервер просматривает папку tmp, и, если у нас есть совпадение, он загружает обратно все данные, которые есть у пользователя. этот клиент, но я вроде как запутался с процессом.

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

4b9b3361

Ответ 1

Позвольте пройти через это:

Файлы cookie и сеансы - это оба способа сохранения состояния приложения между различными запросами браузера. Благодаря им, например, вам не нужно входить в систему каждый раз, когда вы запрашиваете страницу в /fooobar.com/....

Печенье

Файлы cookie представляют собой небольшие биты данных (максимум 4 КБ), которые содержат данные в парах ключ = значение:

name=value; name2=value2

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

Куки имеют дату окончания срока действия, например, с использованием заголовков HTTP:

Set-Cookie: name2=value2; Expires=Wed, 19 Jun 2021 10:18:14 GMT

Что заставит браузер установить cookie с именем name2 со значением value2, срок действия которого истекает через 9 лет.

Файлы cookie считаются крайне небезопасными, поскольку пользователь может легко манипулировать своим содержимым. Вот почему вы всегда должны проверять данные cookie. Не думайте, что то, что вы получаете от куки, обязательно то, что вы ожидаете.

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

Файлы cookie также часто используются при создании сеансов.

сессии

Сессии немного отличаются. Каждый пользователь получает идентификатор сеанса, который отправляется обратно на сервер для проверки либо с помощью cookie, либо с помощью переменной GET.

Сеансы обычно недолговечны, что делает их идеальными для сохранения временного состояния между приложениями. Сессии также истекают, когда пользователь закрывает браузер.

Сеансы считаются более безопасными, чем файлы cookie, поскольку сами переменные хранятся на сервере. Вот как это работает:

  1. Сервер открывает сеанс (устанавливает cookie через заголовок HTTP)
  2. Сервер устанавливает переменную сеанса.
  3. Страница изменений клиента
  4. Клиент отправляет все куки вместе с идентификатором сеанса с шага 1.
  5. Сервер читает идентификатор сессии из куки.
  6. Сервер сопоставляет идентификатор сеанса из списка в базе данных (или памяти и т.д.).
  7. Сервер находит совпадение, считывает переменные, которые теперь доступны на $_SESSION.

Если PHP не находит соответствия, он начнет новый сеанс и повторяет шаги с 1-7.

Вы можете хранить конфиденциальную информацию в сеансе, поскольку она хранится на сервере, но имейте в виду, что идентификатор сеанса все еще можно украсть, если пользователь, скажем, вошел в систему по небезопасному Wi-Fi. (Злоумышленник может прослушать файлы cookie и установить их как свои собственные, он не увидит сами переменные, но сервер определит злоумышленника как пользователя).


Это суть этого. Вы можете узнать больше о руководстве по PHP по обоим предметам.