在Web 技术发展历史上,虽然 Cookie 技术的出现是一次重大的变革,但 Cookie 实在客户端的计算机中保存资料 ,所以引起了一个争议:用户有权阻止 Cookie 使用,使 Web 服务器无法通过 Cookie 来跟踪用户信息。而 Session 技术是将使用者相关的资料存放在服务器系统之下,所以使用者无法停止 Session 的使用。
可以把 Cookie 比喻成第一次去商场时,商家为客户办理的购物会员卡,并由客户自己保存。如果客户下次再去商场时忘记携带购物卡,或者把购物卡丢失了,这样用户就不能再次使用会员身份来购物了。但是如果商家再为客户办理完会员卡之后,由商场来保存这张会员卡,用户就不需要把卡放在自己身上了。但是商场办理会员卡的客户特别多,当客户每次来商场消费时,商场怎么才能知道客户是不是商场的会员呢? 这就要在客户来商场办理会员卡的时候,商场会要求保存客户班里的会员卡的卡号,当下次客户再来购物消费时,商场就可以通过客户的卡号查询到会员卡的登记消费等信息了。
Session就是这样,在客户端仅需要保存由服务器为用户创建的一个 Session 标识符(相当于会员卡的卡号),称之为
Session ID,而在服务器端(文件/数据库中)保存 Session 变量的值 。Session ID是一个既不会重复又不容易被找到的有规律的、由32位十六进制数组成的字符串。Session ID 会保存在客户端的 Cookie里,如果用户阻止 Cookie 的使用,则可以将 Session ID 保存在用户浏览器地址栏的 URL中。
在php配置文件中,有一组和 Session 相关的配置选项。通过对一些选项的设置,就可以对 Session 进行配置,否则将使用默认的 Session配置。
php.ini设置参考项:
1. 处理session存取的模式
session.save_handler = files
2. session档案存放路径
session.save_path = /tmp
3. session使用cookie的功能,启动: 1
session.use_cookies = 1
4. session名字
session.name = PHPSESSID
5. 自动启动;0:关;1:开启
session.auto_start = 0
6. session使用cookie的生存期,以秒为单位
session.cookie_lifetime = 0
7. cookie有效作用域名
session.cookie_domain = "a.com"
8. 概率是 session.gc_probability/session.gc_divisor 结果 1/1000;不建议设置过小,因为session的垃圾回收,是需要检查每个文件是否过期的
session.gc_probability = 1
session.gc_divisor = 1000
9. 过期时间 默认24分钟
session.gc_maxlifetime = 1440
以上是php中如何配置Session的详细内容。更多信息请关注PHP中文网其他相关文章!