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

Как работает сессия?

Любое тело может объяснить мне, как работает сессия в PHP. например. 3 пользователя вошли в систему gmail. как сервер идентифицирует эти 3 пользователя. каков внутренний процесс.

4b9b3361

Ответ 1

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

Вы можете настроить поведение сеанса с помощью различных session_ функций.

Ответ 2

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

Это может показаться немного неуклюже, чем просто наличие cookie на стороне клиента со всеми вашими данными, но есть несколько преимуществ:

  • Ваши данные сеанса на стороне сервера могут содержать очень большие объемы данных без hassle - файлы cookie на стороне клиента ограниченный по размеру
  • На вашем клиентском cookie содержится ничего, кроме небольшой ссылки код - поскольку этот файл cookie проходит каждый время, когда кто-то посещает страницу на вашем сайта, вы сохраняете много пропускной способности, не передавая большие клиентские куки файлы вокруг
  • Данные сеанса гораздо более безопасны - только вы можете манипулировать им, в отличие от файлов cookie на стороне клиента которые редактируются всеми

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

Следующая статья является очень хорошей статьей, которая объясняет, как сессии и файлы cookie работают в PHP.

Ответ 3

Сессии очень просты.

Когда я вхожу на ваш сайт, PHP установит стандартный куки файл браузера с "идентификатором сеанса" - обычно буквенно-цифровую строку, например 63f1a67cf52b5d2bbd0cbef45e18b242.

Как и при использовании всех куки файлов, мой браузер отправит этот файл cookie на ваш сервер с каждым запросом, который я делаю. Таким образом, ваше приложение теперь знает, что каждый запрос, который поставляется с идентификатором сеанса 63f1a67cf52b5d2bbd0cbef45e18b242, поступает от меня.

Таким образом, если вам нужно хранить какую-либо информацию обо мне, вы можете отслеживать ее в 63f1a67cf52b5d2bbd0cbef45e18b242. По умолчанию PHP хранит эту информацию в файлах в каталоге /tmp/, хотя вы можете переопределить их и хранить в любом месте (например, в базе данных). Важно то, чтобы связать этот идентификатор сеанса с конкретным пользователем.

Я не хочу упрощать вещи. Есть некоторые проблемы (например, что, если злоумышленник видит мой незашифрованный идентификатор сеанса и начинает его использовать сам, он мог бы начать маскарадировать, как и я), и есть некоторые способы смягчить эти проблемы. Но основной механизм хранения идентификатора сеанса в cookie и использование этого для идентификации информации обо мне, хранящейся на сервере, довольно универсален.

Ответ 4

Gmail использует Python, я думаю, а не PHP.

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

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

Ответ 5

Как работает PHP-сеанс

  • Во-первых, PHP создает уникальный номер идентификатора (случайная строка из 32 шестнадцатеричное число, например, 3c7foj34c3jj973hjkop2fc937e3443) для индивидуальная сессия.

  • Файл cookie PHPSESSID передал этот уникальный идентификационный номер браузеру пользователей, чтобы сохранить этот номер.

  • Создается новый файл для сервера с тем же именем уникального идентификационного номера с префиксом sess_ (т.е. sess_3c7foj34c3jj973hjkop2fc937e3443.)

  • Веб-браузер отправил этот файл cookie на сервер с каждым запросом.

  • Если PHP получает этот уникальный идентификационный номер из файла cookie PHPSESSID (по каждому запросу), то PHP ищет во временном каталоге и сравнивает это число и имя файла. Если оба они одинаковы, то он извлекает существующий сеанс, иначе создаст новый сеанс для этого пользователя.

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

См. эту статью для получения более подробной информации. Как работает сеанс PHP

Ответ 6

При первом открытии веб-страницы (URL-адреса) ваш браузер отправляет запрос на этот сервер, в это время заголовок, не содержащий куки файл или сеанс, который должен быть включен, затем после ответов сервера на веб-браузер (User Agent) сервер может отправлять cookie или сеанс, в это время браузер сохранил их для следующего запроса.

Теперь, перезагружая страницу, браузер отправляет куки файл на сервер (Содержится в заголовке запроса), тогда сервер может получить к нему доступ и проверить его.

Для сеанса: его временный файл cookie, который будет завершен после закрытия окон.

СЕССИЯ PHP PHP использует cookie сеанса для одной пары ключ-значение с именем PHPSESSID, сервер зависит от значения этого ключа и нахождения эквивалентной пары ключ-значение, используя значение PHPSESSID. Используя этот подход, предотвращающий какую-либо атаку, например дешифрование фактических значений cookie, потому что cookie сохраняет все пары ключ-значение на ПК клиентов, которые можно увидеть, в то время как сеанс зависит от одной пары ключ-значение.

Ответ 7

Функция session_start() определяет верхнюю часть заголовка... это приведет к созданию уникального числа. Сессия - это способ общения с сервером. Хранилище сеансов на стороне сервера и на стороне клиента. Сеанс браузера хранится в файле tmp или файлах cookie.

Cookies сохраняют имя сеанса и значение, которое не помещает данные сеанса. Данные сохраняются сеансом на стороне сервера. когда клиент отправляет запрос серверу... сервер получает идентификатор сеанса и возвращает данные клиенту. Генерация session_id с серверной стороны и session_id - это способ идентифицировать запрос, поступающий откуда.

Ответ 8

Файл cookie.
Или параметр в URL-адресе. И этот интернет-процесс называется протоколом HTTP.

Ответ 9

Функция session_start() генерирует случайный идентификатор сеанса и сохраняет его в файле cookie на компьютере пользователя (это единственная информация о сеансе, которая фактически хранится на стороне клиента.) Имя по умолчанию для файла cookie - PHPSESSID, хотя это может быть изменено в файлах конфигурации PHP на сервере (однако большинство хостинговых компаний оставят его в покое.) Чтобы ссылаться на идентификатор сеанса в вашем PHP-коде, вы должны ссылаться на переменную $PHPSESSID (это имя файла cookie, помните, что от Cookies?) Ваш острый ум может удивляться, что происходит, когда вы приходите ко второму проходу через вашу страницу и снова выполняете функцию session_start(). PHP знает, что уже есть сессия о прогрессе и поэтому игнорирует последующие экземпляры session_start()