是否所有会话变量都通过HTTP发送?

时间:2009-09-29 20:37:08

标签: php http session webserver session-variables

我喜欢所谓的会话ID的想法,该会话ID被发送到浏览器并返回以进行身份​​验证。但是我可以在服务器端会话变量中存储更多数据,以便后续会话访问吗?我正在使用PHP。

3 个答案:

答案 0 :(得分:10)

会话变量存储在服务器端。只有会话ID将从客户端发回。服务器将在其会话存储中查找ID并获取变量。实际变量发送到客户端。这使得会话状态成为可伸缩Web应用程序的噩梦,因为它依赖于服务器来跟踪用户状态。你在会话中放的东西越多,你在服务器上每次会话的开销就越多。

如果要在客户端本身存储变量,则应使用cookie而不是会话。

答案 1 :(得分:2)

是。默认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)

答案 2 :(得分:1)

不,据我了解,唯一转移的是会话ID,通过cookie。