Автор оригинала: David Wong.
Контроль сеанса
Протокол HTTP-это протокол связи между веб-сервером и браузером. Это протокол без сохранения состояния, то есть каждый HTTP-запрос независим друг от друга. Таким образом, протокол HTTP не имеет встроенного механизма для поддержания состояния между двумя транзакциями. Например, когда пользователь запрашивает страницу, а затем запрашивает другую страницу, HTTP не может сообщить нам, исходят ли два запроса от одного и того же пользователя.
На веб-сайте нам часто нужно отслеживать переменную: отслеживая переменную, мы можем установить связь между несколькими запросами, а затем отображать различный контент и разные страницы в соответствии с авторизацией и удостоверением пользователя. Это технология управления сеансами.
Общие технологии управления сеансами включают Файлы cookie и Сессия 。 Короче говоря, cookie предназначен для определения личности пользователя путем записи информации в клиенте; сеанс предназначен для определения личности пользователя путем записи информации на сервере.
Печенье
Файл cookie-это небольшой текстовый файл, который включается в сообщение HTTP-запроса и передается между веб-сервером и браузером. Файлы cookie работают следующим образом:
- Сервер устанавливает поле
Set-Cookieи помещает данные cookie вSet-CookieПоле передается в браузер вместе с HTTP-сообщением; - После получения ответного HTTP-сообщения браузер проверяет, что
Набор-CookieПоле имеет значение. Файл cookie будет создан локально для сохранения данных; - Когда браузер снова отправит запрос на сервер, браузер сначала выполнит поиск в локально сохраненном файле cookie. Если в файле cookie есть какие-либо файлы cookie, связанные с подключаемым URL-адресом, установите поле cookie в сообщении HTTP-запроса, добавьте данные в файл cookie в это поле и, наконец, отправьте сообщение http-запроса с полем cookie на сервер.
Файлы cookie могут использоваться для сохранения простой информации, такой как имя пользователя, пароль и настройки персонализации. Вот инструкции по использованию файлов cookie:
Установить
Вы должны вызвать setcookie () перед выводом HTML – файла.
Получать
удалить
Сессия
Сеанс-это метод сохранения данных сеанса пользователя на стороне сервера. Его принцип работы заключается в следующем:
- Когда браузер впервые обращается к PHP-скрипту,
session_start()Функция создает уникальный идентификатор сеанса (у каждого клиента есть уникальный идентификатор) и автоматически сохраняет идентификатор сеанса в файле cookie клиента через заголовок HTTP-ответа. В то же время на сервере также создается файл с именем идентификатор сеанса для сохранения информации о сеансе пользователя; - Когда тот же пользователь снова посетит веб-сайт, идентификатор сеанса, сохраненный в файле cookie, будет автоматически возвращен через заголовок HTTP-запроса;
- Серверный PHP-скрипт получает запрос клиента и
session_start()Вместо назначения нового идентификатора сеанса функция выполняет поиск на жестком диске сервера файла сеанса с тем же именем, что и идентификатор сеанса, и считывает информацию о сеансе, ранее сохраненную для пользователя.
Во-первых, есть два способа создать уникальный идентификатор сеанса: с помощью файла cookie или get. PHP по умолчанию использует сеанс для создания имени PHPSESSID Значение session.name может быть изменен с помощью php.ini. Если клиент отключает файл cookie, вы можете указать, чтобы отправить идентификатор сеанса на сервер через get (изменить php.ini session.use_trans_sid и т.д.). Во – вторых, сеансы сохраняются в виде файлов. В php.ini есть элемент конфигурации --session.save_path= "" , заполненный путь сохранит все файлы сеанса. Формат именования файла сеанса: Sess_ [значение phpsessid] 。 Каждый файл содержит данные сеанса. Наконец, данные, сохраненные в файле сеанса, сериализуются, например:
S: 32: "77c18770c6cb5d89444c407aaa3e8477";
Сеанс также можно использовать для сохранения простой информации, такой как имя пользователя, пароль и настройки персонализации. Ниже приведены инструкции для сеанса:
Установить
//Start session session_start(); //Register the session variable and assign it to the name of a user $_SESSION["username"] = "jochen"; //Register the session variable and assign it to a user's ID $_SESSION["uid"] = 1;
Примечание: перед выводом HTML-файла необходимо вызвать функцию session_start ().
читать
Разрушение
Следует отметить, что при наличии большого количества файлов сеанса возникают проблемы с производительностью чтения/записи ввода-вывода. В это время вы можете использовать memcached, redis и другие системы кэширования.
Оригинал: “https://developpaper.com/php-session-control/”