在Web 技术发展历史上,虽然 Cookie 技术的出现是一次重大的变革,但 Cookie 需要在客户端存储数据 ,这就存在一个隐私问题:用户有权阻止 Cookie 使用,使 Web 服务器无法通过 Cookie 来跟踪用户信息。而 Session 技术是将使用者相关的资料存放在服务器系统之下,用户是无法停止 Session 的。
可以把 Cookie 比喻成,商家为客户办理的会员卡,所有信息均存储在该卡的芯片上。如果客户下次忘记携带会员卡,或者卡丢失了,这样客户就不能再次使用会员身份了。但如果商家为客户办理完会员卡之后,所有信息均存储在商家的服务器上,用户就不需要把卡放在自己身上了。不过由于会员卡数量众多,客户每次来消费时,商家需要客户提供会员卡号或身份识别标识而已,通过卡号或识别标识,商家就可以查询到会员卡的相关信息、消费记录等。
Session会在客户端保存由服务器为用户创建的一个 Session 标识符(相当于会员卡的卡号),称之为Session ID,而在服务器端(文件/数据库中)保存 Session 变量的值。
在PHP开发中如何应用PHP Session?
也就是说, Session是服务器端技术,利用这个技术,服务器可以为每个用户的浏览器创建一个为其独享的session文件,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其他web资源时,其他web资源再从用户各自的session中取出数据为用户服务。
对于PHP开发者来说,可以通过以下示例即可理解。
aaa.php与bbb.php两个文件,其中aaa.php如下:
bbb.php如下:
先运行aaa.php,再运行bbb.php,将在网页中输出:张三
在PHP环境中如何配置PHP Session?
php.ini中Session设置参考项:
处理session存取的模式
session.save_handler = files
session档案存放路径
session.save_path = /tmp
session使用cookie的功能,启动: 1
session.use_cookies = 1
session名字
session.name = PHPSESSID
自动启动开关,0关、1开启
session.auto_start = 0
session使用cookie的生存期,以秒为单位
session.cookie_lifetime = 0
cookie有效作用域名
session.cookie_domain = “zhanzhangb.com”
session.gc_probability/session.gc_divisor不建议设置过小,因为session的垃圾回收,是需要检查每个文件是否过期的
session.gc_probability = 1
session.gc_divisor = 1000
过期时间 默认24分钟
session.gc_maxlifetime = 1440
原文地址:https://www.zhanzhangb.com/2043.html