【发布时间】:2010-12-02 11:04:12
【问题描述】:
我喜欢所谓的会话 ID 的想法,它被发送到浏览器并返回以进行身份验证。但是我可以在服务器端会话变量中存储更多数据以供后续会话访问吗?我正在使用 PHP。
【问题讨论】:
标签: php http session webserver session-variables
我喜欢所谓的会话 ID 的想法,它被发送到浏览器并返回以进行身份验证。但是我可以在服务器端会话变量中存储更多数据以供后续会话访问吗?我正在使用 PHP。
【问题讨论】:
标签: php http session webserver session-variables
会话变量存储在服务器端。只有会话 ID 会从客户端发回。服务器将在其会话存储中查找 ID 并获取变量。实际变量根本不会发送给客户端。这使得会话状态成为可扩展 Web 应用程序的噩梦,因为它依赖于服务器来跟踪用户状态。您在会话中放入的内容越多,服务器上每个会话的开销就越大。
如果您想在客户端本身存储变量,您应该使用 cookie 而不是会话。
【讨论】:
不,据我了解,唯一传输的是会话 ID,通过 cookie。
【讨论】:
是的。默认 php 安装中的会话 ID 实际上对应于服务器上为您保存所有会话数据的文件。会话 ID 只是唯一用户的标识符。会话 ID 通常存储在 cookie 中。
在 PHP 中要在会话中存储更多数据,只需这样做:
--set.php--
session_start();
$_SESSION['var1'] = 'foo';
$_SESSION['var2'] = 'bar';
--look.php--
print_r($_SESSION); // prints Array (var1 => foo, var2=>bar)
【讨论】: