Session的属性
Session在网络应用中被称为会话。
具体到web中的Session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间,因此从概述上我们可以看到,session实际上是一个特定的时间概念。
需要注意的是:一个session的概念需要包括特定的客户端,特定的服务器端以及不中断的操作时间。A用户和C服务器建立连接时所处的session同B用户和C服务器建立连接时所处的Session是两个不同的session。
Session的工作原理:
(1)当一个session第一被启动时,一个唯一的标识被存储与本地的cookie中;
(2)首先使用session_start()函数,PHP从session仓库中加载已经存储的session变量。
(3)当执行PHP脚本时,通过session_register()函数注册session变量。
(4)当PHP 脚本执行结束时,未被销毁的session变量会被自动保存在本地的一定路径下的session库中,这个路径可以通过php.ini文件中的session_save_path指定,下次浏览器网页时可以加载使用。
HttpRequest对象有两种形式的getSession的方法调用:
一个是getSession()
一个是getSession(boolen isNew)
这样,前者会检测当前时候是否有session存在,如果不存在则创建一个,如果存在就返回当前的。
getSession()相当于getSession(true);
参数为true时,若存在会话,则返回该会话,否则新建一个会话;
参数为false时,如存在会话,则返回该会话,否则返回NULL;