
1、会话的工作原理
2、(1)首次启用会话时,唯一标识符存储在本地cookie中。
(相关资料图)
3、(2)首先使用session_start()函数,PHP从会话库中加载存储的会话变量。
4、(3)执行PHP脚本时,使用session_register()函数注册session变量。
5、(4)当PHP脚本执行结束时,未销毁的会话变量会自动保存在本地会话库中的某个路径下,该路径可以由php.ini文件中的session.save_path指定,下次浏览网页时可以加载使用。
6、会话存储在服务器端。通常,为了防止它存储在服务器的内存中(用于高速访问),在用户第一次访问服务器时创建Sessinon。需要注意的是,只有在访问JSP、Servlet等程序时才会创建会话,而在访问HTML、IMAGE等静态资源时不会创建会话。您可以调用request.getSession(true)来强制生成会话。
7、销毁会话只有两种方法:第一,会话调用session.invalidate()方法。第二,之前和之后的请求超过了会话指定的生命周期时间。可以在web.xml中配置会话的生命周期时间。默认时间为30分钟,可以在web.xml中进行以下配置:
8、会话配置会话超时5/会话超时/会话配置
9、会话对浏览器的要求:
10、虽然会话存储在服务器中,并且对客户端是透明的,但是它的正常操作仍然需要客户端浏览器的支持。这是因为会话需要使用Cookie作为识别标记。HTTP协议是无状态的,会话无法根据HTTP连接判断是否是同一个客户端,于是服务器向客户端浏览器发送一个名为JSESSIONid的Cookie,其值为会话的id(即HttpSession.getId()的返回值)。会话使用这个Cookie来识别它是否是同一用户。
11、这个Cookie是服务器自动生成的,它的maxAge属性一般是-1,也就是说它只在当前浏览器中有效,不在浏览器窗口间共享,所以关闭浏览器会无效。因此,当同一台机器的两个浏览器窗口访问服务器时,会产生两个不同的会话。链接、脚本等打开的新窗口除外。在浏览器窗口(即双击桌面浏览器图标等不打开的窗口。).这样的子窗口共享父窗口的Cookie,所以它们共享一个会话。
本文到此结束,希望对大家有所帮助。