两者之间有什么区别?
根据我对一般身份验证工作原理的理解,ID存储在服务器端和客户端。对于每个请求,客户端发送cookie,匹配服务器中的ID,并输出所需的数据。因此,当我这样做时:
session_start();
session_id();
Cookie也存储在客户端。这对我来说很有意义,因为在我看来session_id()
只是生成了这个ID。然后,我们可以将此ID存储到(例如)给定用户的User表中。然后,对于每个浏览器请求,我们只匹配cookie中的ID和数据库中的ID。
但是,为什么我们不能只使用ID进行身份验证?我已经看到在线代码执行以下操作,我不明白在$_SESSION
中设置字段的重点是:
session_start();
$_SESSION['username'] = 'Billy Bobby';
答案 0 :(得分:1)
会话ID存储在cookie客户端。在服务器端,数据(来自$ _SESSION)保存在该服务器ID密钥下的文件中(通常)。
您可以将所有数据保存在数据库中,但默认情况下,一个页面视图与第二个页面视图之间不存在持久性。
会话ID实际上与身份验证无关。虽然您可以使用会话数据来管理多个请求中的身份验证状态。