会话保存在哪里?

2022-08-30 10:49:43

我想知道PHP会话数据保存在哪里;它在客户端浏览器中吗?还是在服务器上?

当我在浏览器设置中禁用cookie时,PHP无法保存会话数据,但在 中,我可以更改会话保存路径。php.ini

会话数据存储在服务器还是客户端浏览器上?


答案 1

您使用的读取和写入的会话数据存储在服务器端,通常存储在临时目录中的文本文件中。它们不能从外面访问。$_SESSION

将会话连接到客户端浏览器的是会话 ID,它通常存储在 Cookie 中(有关该规则的例外情况,请参阅注释)。此 ID 是并且应该是存储在客户端的会话的唯一内容。

如果您在浏览器中删除 Cookie,则与该会话的连接将丢失,即使服务器上的文件继续存在一段时间也是如此。

该变量会影响服务器上存储会话数据的位置。如果您不是服务器的管理员,则通常不需要更改它。session.save_path


答案 2

两者兼而有之!会话将实际的会话信息保存在服务器上,但向客户端提供标识 Cookie,以了解哪个会话属于哪个客户端。Cookie本身中的信息毫无价值,但允许服务器识别客户端并使用实际的会话信息。


推荐