【发布时间】:2024-05-02 01:50:02
【问题描述】:
我想知道 PHP 会话数据保存在哪里;它在客户端浏览器中吗?还是在服务器上?
当我在浏览器设置中禁用 cookie 时,PHP 无法保存会话数据,但在 php.ini 中,我可以更改会话保存路径。
会话数据是存储在服务器还是客户端浏览器上?
【问题讨论】:
标签: php session browser cookies
我想知道 PHP 会话数据保存在哪里;它在客户端浏览器中吗?还是在服务器上?
当我在浏览器设置中禁用 cookie 时,PHP 无法保存会话数据,但在 php.ini 中,我可以更改会话保存路径。
会话数据是存储在服务器还是客户端浏览器上?
【问题讨论】:
标签: php session browser cookies
您使用$_SESSION 读写的会话数据 存储在服务器端,通常存储在临时目录中的文本文件中。无法从外部访问它们。
将会话连接到客户端浏览器的是会话ID,它通常存储在 cookie 中(有关该规则的例外情况,请参阅 cmets)。此 ID 是并且应该是唯一存储在客户端的会话。
如果您在浏览器中删除 cookie,则与该会话的连接将丢失,即使服务器上的文件继续存在一段时间。
session.save_path 变量影响服务器上存储会话数据的位置。如果您不是服务器的管理员,通常不需要更改它。
【讨论】:
session.use_trans_sid 重写您的 HTML 输出以自动添加会话 ID。它并不总是有效,例如使用 Javascript。
两者都有!会话将实际会话信息保存在服务器上,但给客户端一个标识cookie,以知道哪个会话属于哪个客户端。 cookie 本身中的信息是没有价值的,但是允许服务器识别客户端并使用实际的会话信息。
【讨论】:
Blockquote“会话数据是存储在服务器还是客户端浏览器上?”
这让我想到了代客泊车系统。代客(服务器)保留您的汽车(会话数据),但他/她会给您一张票(会话 id),以证明当您需要访问汽车时,它是您的。如果您丢失了您的车票(通过删除缓存或关闭浏览器),您的汽车(会话数据)就像消失了一样,因为您无法再证明它是您的汽车。
好吧,这只是一个类比......很快就会崩溃。例如。您实际上并不像拥有您的汽车那样拥有您的会话信息。而且你不能把它赶走。
【讨论】:
两者,客户端(浏览器)中的会话保存为 cookie。该 cookie 引用了同样驻留在服务器上的会话。
【讨论】:
存储在服务器端,维护安全;但额外的 cookie 也可以存储在客户端。
【讨论】: