简介
什么是 SESSION ?
答:一种会话控制技术
为什么需要会话控制技术 ?
早期互联网采用HTTP协议发送请求,但由于HTTP是无状态的请求,所以网站管理者无法获知当前用户的用户轨迹。
Cookie技术
相当于超市的会员卡Session技术
相当于超市发卡但是保留实体卡,只发给我们卡号(Session_ID)
session 原理图

由上图可知,session操作主要是对session的增删改查(session文件的读取与写入)操作,但是由于文件读写操作要实现对服务器的I/O进行开销,如淘宝这种大数据系统,如果采用文本方式保存session数据,那么是无法想象的,另如想统计当前在线人数等信息,使用数据集群共享session数据时,都是很难实现的。
那么如何实现对以上问题的解决呢?
答:Session入库技术
Session入库技术实际就是人为更改session数据读取与写入的位置,如下图所示:
session入库的实现
- 要使用到的知识点:
bool session_set_save_handler ( callable $open , callable $close , callable $read , callable $write , callable $destroy , callable $gc )
功能:实现对session读取存取方式的函数
$open : 打开session读写操作
$close : 关闭session读写操作
$read : 读取session文件(读取数据库中的session信息)
$write : 写入session文件(写入session信息到数据库中)
$destroy : 销毁session文件(删除session信息)
$gc : 当session文件过期时,系统自动删除该文件(删除过期session记录)
- session入库类
- 在open方法中,链接数据库

- 在close方法中,关闭链接资源

- 在read方法中,读取sess_id信息,在read方法中,可以通过参数来调用系统中的session_id

- 在write方法中,实现对session数据库的写入操作

- 在destroy方法中,销毁指定session_id的数据

- 在gc方法中,判断session数据是否过期

- 定义构造方法完成调用

结束语
如果您对这篇博文有什么意见或者建议,请评论与我讨论。
如果您觉得还不错的话~可以点个赞鼓励我哦。
版权声明:本文为qq_42725383原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。