PHP面试解读 - PHP基础篇 - 会话控制技术

真题:
简述cookie和session的区别及各自的工作机制,存储位置等,简述cookie的优缺点

1.php会话控制技术
为什么要使用会话控制技术?
会话控制技术思想:允许服务器跟踪同一个客户端做出的连续请求。
Cookie
由服务器发送给客户端的片段信息,存储在客户端的内存或者硬盘的技术
优点:存放在客户端,不会占用服务器资源,效率较高
缺点:因为数据存在在客户端,所以不建议存放敏感信息,而且用户有权限禁止cookie的使用。

Session

Session配置 php.ini
session.auto_start 是否自动开启session
session.cookie_domain 存储sessionId的那个cookie的有效域名
session.cookie_lifetime
session.cookie_path
session.name PHPSESSIONID
session.save_path session在服务器中存储的路径
session.use_cookies 是否使用cookie来传递sessionid
session.use_trans_sid 是否使用传递的方式来传递sessionid

垃圾回收机制 [
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440 session最大生命周期
解释: 每100次调用session start的时候会有一次去清空文件,清空的文件为当时间的时间戳减去文件最后的修改时间超过 1440秒的文件已过期,将被清除
]
session.save_handler session句柄

优点:信息安全,存放在服务端中
缺点:占用服务器资源,session文件生成,最终导致磁盘空间不足。并且分布式会受到影响。

session的存储
使用 session_set_save_handler() 将数据存到 Mysql、Memcache、Redis等

PHP面试解读 - PHP基础篇 - 会话控制技术