Как работают Cookies и сеансы?

Я пытаюсь понять Cookies и сеансы профессионально, я знаю, что когда браузер вводит сервер, сервер «спрашивает» обозревателя «Вставить» себе куки с «phpsessid» в папку cookie браузера клиента. Теперь, когда у нас есть " phpsessid ", когда клиент входит на сервер, браузер отправляет серверу" phpsessid ", а сервер просматривает его папку tmp, и если у нас есть соответствие, поэтому он загружает все данные, которые у него есть для этого клиента, но я немного смущен со всем процессом.

Я буду благодарен, если кто-то может помочь мне разобраться в процессах создания сеансов и файлов cookie (что происходит «За кулисами»). Спасибо вам всем.

Давайте рассмотрим это:

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

Печенье

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

name=value; name2=value2 

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

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

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

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

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

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

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

сессии

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

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

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

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

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

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


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