Session的创建过程和有效期

2016-08-12 1498 5 编辑:深色多郎 来源:程序设计

1.Session的创建和使用过程及有效期

当用户请求网站中的任意一个页面时,若用户尚未建立Session对象(如第一次访问),则服务器会自动为用户创建一个Session对象(它包含唯一的Session ID 和其他Session变量),并保存在服务器内存中,不同用户的Session对象存储着各自特定的信息。

服务器将Session ID 发送到客服端浏览器,而浏览器则将该Session ID 保存在会话Cookie中。当浏览器再次向服务器发送HTTP请求时,会将Session ID 信息一起发送给服务器。服务器根据该Session ID 查找到对应的Session对象,就对识别出用户。这将有利于服务器对用户身份的鉴定,从而实现Web页面的个性化。

注意区分Session对象和Session变量,对于每个网站的访问者来说,网站都会为其建立一个Session对象,该Session对象中有一个SessionID。如果程序中没有创建Session变量的代码,那么每个用户的Session对象中只含有Session ID。否则,该Session对象中还包含许多个Session变量,也就是说,每个用户都有一个独立的Session对象,每个用户可以有0个到多个独立的Session变量。

2.Session的生命期

Session对象的生命期是从用户在Session有效期内第一次访问网站直到不再访问网站为止的这段时间。因此,一个Session开始于用户打开这个网站中的任意一个网页;结束于用户不再访问这个站点,包括Session超时或主动删除Session两种情况。

注意:不再访问这个站点不等于关闭浏览器。

关闭浏览器并不会使一个Session结束,因为服务器并不知道用户关闭了浏览器,但是会使这个Session永远都无法访问到。因为当用户再打开一个新的浏览器窗口又会产生一个新的Session。

3.设置Session的有效期

Session对手、下并不是一直有效的,它有一个有效期的,默认为24分钟(1440秒)。如果客户端超过24分钟没有刷新网页或访问网站中的其他网页,则该Session对象就会自动结束。不过可以修改Session对象的默认有效期,一种方法是在php的配置文件php.ini中修改系统默认值(session.gc_maxlifetime = 1440)。另一种方法是利用ini_set()方法更改Session对象的默认有效期。

扩展阅读:如何使用$_SESSION设置和获取SESSION? 

本站文章均为深正网站建设摘自权威资料,书籍,或网络原创文章,如有版权纠纷或者违规问题,请即刻联系我们删除,我们欢迎您分享,引用和转载,但谢绝直接搬砖和抄袭!感谢...
关注深正互联