Website(Session/Cookie)
2020-06-23 本文已影响0人
BlueFishMan
cookie和session
- 假设某个用户访问你的网站,当他完成认证之后,你可以将他的用户名和 email 地址添加到 session 中, 这样当你需要的时候你就可以直接访问这些数据,而不用查询数据库了
- 要清除当前的 session(例如:退出登录时)
存储 session 的驱动(或叫做存储引擎)
- 文件(默认的,基于文件系统)
- 数据库
- Redis
- Memcached
执行一些简单的测试可能会让你真的相信 SQL 数据库更快一点,但是在 99% 的情况下,这只是当你的 session 并发非常少的时候是对的.当 session 的并发数越来越大,服务器的负载越来越高, 这时就不一样了,文件系统将会胜过几乎所有的关系型数据库
初始化Session类
- Session 通常会在每个页面载入的时候全局运行,所以 Session 类必须首先被初始化
- Session 类基本上都是在后台运行,当初始化 session 之后,系统会自动读取、创建和更新 session 数据
Session是如何工作的?
- 当页面载入后,Session 类就会检查用户的 cookie 中是否存在有效的 session 数据. 如果 session 数据不存在(或者与服务端不匹配,或者已经过期), 那么就会创建一个新的 session 并保存起来
- 如果 session 数据存在并且有效,那么就会更新 session 的信息. 根据你的配置,每一次更新都会生成一个新的 Session ID