Сеансы делают HTTP практически протоколом с состоянием, который фактически не имеет состояния.Данные сеанса зависят от клиента, но хранятся на стороне сервера, обычно это сериализованный массив в текстовом файле.(Поведение может быть переопределено в PHP с использованием обработчиков сеансов, см. session_set_save_handler () .)
Сервер предоставляет клиенту файл cookie, содержащий идентификатор ( идентификатор сеанса ) который однозначно идентифицирует этого клиента.Когда выполняется HTTP-запрос, вместе с ним отправляется файл cookie, содержащий идентификатор сеанса, и сервер находит данные сеанса клиента и загружает их, восстанавливая виртуальное состояние клиента .(Иногда идентификатор отправляется не через cookie, а как параметр GET, но это не имеет значения.)
В PHP вы можете получить доступ к состоянию сеанса, используя суперглобальный $ _ SESSION , после использования session_start () для создания или возобновления сеанса.
Поскольку HTTP не имеет состояния, сервер не может узнать, когда клиент уходит (закрывает окно браузера, выходит, чтобы купить какой-либонапитки ...) Поэтому единственное разумное, что нужно сделать, - это измерить время, прошедшее с момента их последнего запроса, и предположить, что оно прошло, если оно превышает пороговое значение.Это количество времени называется «тайм-аут сеанса» или «время жизни сеанса».Вы можете установить значение по умолчанию в файле php.ini
или с помощью функции ini_set () .См. раздел о директивах сессии в php.ini для получения более подробной информации.