在 PHP 中,Session 是存在服务器上的,可以是文件形式,也可以通过函数得到信息存在数据库中。程序员可以定义一个变量 test,存在 Session 里面,随时可以读取,修改。
$_SESSION['test'] = 42;
Cookie 是存在浏览器中,也是类似操作。
$_COOKIE['test'] = 42;
我可以把用户密码的 hash 值加密后存在 cookie 里,等用户 session 失效后,我读取 cookie, 解密得到 hash 值,与数据库中这个用户密码的 hash 比较,如果一致,在 session 中将其标为已经登录。
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
在 Rails 中,
http://railstutorial-china.org/chapter8.html 大家在这页搜索一下:
session[:remember_token] = user.id
为什么这里说:session 对象把用户 id 保存在浏览器的 cookie 中,这样在网站的所有页面就都可以使用了。
Session 不是一直存在服务器中吗,怎么会保存在浏览器的 cookie 中?
我一直对 Rails 里面操作 cookie 和 session 的问题有疑问。有没有哪位好心人给我解释一下。