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

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

28
задан Charles 24 December 2012 в 21:48
поделиться

5 ответов

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

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

22
ответ дан 28 November 2019 в 02:51
поделиться

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

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

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

5
ответ дан 28 November 2019 в 02:51
поделиться

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

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

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

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

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

10
ответ дан 28 November 2019 в 02:51
поделиться

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

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

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

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

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

25
ответ дан 28 November 2019 в 02:51
поделиться

Печенье.
Или параметр в url. И этот интернет-процесс называется протоколом HTTP.

0
ответ дан 28 November 2019 в 02:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: