http协议是无状态协议,即客户端连续发送的多个请求之间没有联系,下一次请求不关心上一次回话的状态
实际应用希望服务器能够记住客户端请求的状态
java web使用session跟踪会话和管理会话的状态
用户打开浏览器访问web 应用中的各个网页,知道关闭浏览器的过程就是一次会话
一次会话对应一个session对象
会话开始时,web服务器session对象分配唯一的sessionID,将其发送给客户端,当客户端再次发送http请求时,客户端将sessionID再传回来。
web服务器从请求中读取sessionID,然后根据sessionID找到对应的session对象,从而得到客户端状态信息。
session是一种服务器个别处理与记录用户上网使用者信息的技术
session失效的情况:
1、用户关闭目前正在使用的浏览器
2、关闭网页服务器
3、运行程序结束session
4、用户未向服务器提出请求超过预设时间(tomcat预设时间是30分钟)
session钝化机制:
session对象数据保存在内存当中,当访问用户很多时,会大量耗费内存资源,会影响web 服务器的性能,因此,将服务器不经常使用的session对象暂时序列化到文件中或数据库中,当需要使用时再反序列话到内存。