【黑马程序员济南】PHP会话技术之session常见问题
垃圾回收
浏览器关闭,session失效,因为session-id这个COOKIE变量消失。
是否会立即导致服务器端的session数据区文件消失吗?
不会。
判断垃圾:
PHP,将长时间没有使用的session数据区文件,视为垃圾。
最后使用的时间,与当前时间的间隔,超过了多久就没有使用,就视为长时间没有使用。
默认为:1440s,就失效了。
配置项php.ini:
删除垃圾:
在执行session_start()时。PHP就有概率地执行删除垃圾的操作。
默认的概率的为1/1000。
配置项如下:
可能性
基数:
如何持久化session
持久化,session-id和session数据区垃圾判断时间。
cookie和session的联系和区别?
联系:
session基于COOKIE。session-ID存储于COOKIE中。
区别:
Cookie Session
存储位置浏览器端服务器端
安全性低高
数据传输量全部传输(有限制)仅传输session-ID(无限制)
全部类型(除了资源)。采用序列数据类型支持仅字符串
储。
COOKIE禁用session是否可用?
没有COOKIE,就没有办法存储sessionid,因此不能用。
但是,如果仅从原理上说,是可以解决的。
就是通过get或post向服务器传参即可。每次都携带即可!
演示如下:
修改PHP的配置。可以完成session-ID的自动传输:
是否仅仅是用COOKIE传输session-ID:
是否自动在URL或者表单内增加session-ID变量:
结果:
会在链接地址后,自动的增加PHPSESSID参数