PHP 会话服务器如何维护特定用户的唯一性?
PHP Sessions as to how server maintains the uniqueness of a particular user?
PHP 会话在服务器上存储数据并从客户端计算机获取会话 ID。我一直怀疑的是,假设我创建了一个 Web 应用程序,其中登录时用户电子邮件 ID 存储在会话变量中。现在如果这个应用程序部署在一个公共服务器上,当两个用户登录时,服务器如何区分用户?因为它是用于存储他们的电子邮件 ID 的同一个会话变量。如果完全避免,什么程序可以避免覆盖?
SessionID 存储在 HTTP Session cookie 中(即仅在浏览器 "session" 期间可用的临时 cookie,并存储在浏览器的内存中);用户第一次显示您网站的页面时(甚至没有登录),服务器会生成一个包含新的(且唯一的)SessionID 的 cookie,并通过该 cookie 将其发送给客户端。
然后,客户端和服务器将在所有 session 期间进行通信,并在所有消息中添加此 cookie。
您存储在 $_SESSION
变量中的所有数据都会自动存储在单独的内存 space 中,具体取决于 SessionID。事实上,它主要类似于 $_SESSION[SessionID]
,但由 PHP.
透明管理
您可以在 PHP Session in the PHP doc site
上阅读更多内容
PHP 会话在服务器上存储数据并从客户端计算机获取会话 ID。我一直怀疑的是,假设我创建了一个 Web 应用程序,其中登录时用户电子邮件 ID 存储在会话变量中。现在如果这个应用程序部署在一个公共服务器上,当两个用户登录时,服务器如何区分用户?因为它是用于存储他们的电子邮件 ID 的同一个会话变量。如果完全避免,什么程序可以避免覆盖?
SessionID 存储在 HTTP Session cookie 中(即仅在浏览器 "session" 期间可用的临时 cookie,并存储在浏览器的内存中);用户第一次显示您网站的页面时(甚至没有登录),服务器会生成一个包含新的(且唯一的)SessionID 的 cookie,并通过该 cookie 将其发送给客户端。 然后,客户端和服务器将在所有 session 期间进行通信,并在所有消息中添加此 cookie。
您存储在 $_SESSION
变量中的所有数据都会自动存储在单独的内存 space 中,具体取决于 SessionID。事实上,它主要类似于 $_SESSION[SessionID]
,但由 PHP.
您可以在 PHP Session in the PHP doc site
上阅读更多内容