Web Session 介绍
Session 一般译作会话,在 Web应用的用户看来,他打开浏览器访问一个电子商务网站,登录、并完成购物直到关闭浏览器,这是一个会话。而在 Web 应用的开发者开来,用户登录时我需要创建一个数据结构以存储用户的登录信息,这个结构也叫做 Session。因此在谈论 Session 的时候要注意上下文环境。
Session 和 Cookie 的区别
1、Cookie 是把用户的数据写给用户的浏览器。
2、Session 技术把用户的数据写到用户独占的 Session 中。
3、Session 对象由服务器创建,开发人员可以通过特定方法得到 Session 对象。
Session 原理
服务器创建 Session 出来后,会把 Session 的id,以 Cookie 的形式回写给客户机,只要客户机的浏览器不关,再去访问服务器时,都会带着 Session 的id去,服务器发现客户机浏览器带 Session id 过来了,就会使用内存中与之对应的 Session 为之服务。如果 Cookie 被人为的禁用,必须有其它的机制以便在 Cookie 被禁用时仍然能够把 Session id传递回服务器,经常采用的一种技术叫做 URL 重写,就是把 Session id 附加在 URL 路径的后面。
Session 超时与销毁
Web 服务器采用“超时限制”的办法来判断客户端是否还在继续访问,如果某个客户端在一定的时间之内没有发出后续请求,Web 服务器则认为客户端已经停止了活动,结束与该客户端的会话并将与之对应的 HttpSession 对象变成垃圾。手动销毁是指直接调用其 invalidate 方法。
<session-config>
<session-timeout>30</session-timeout>
</session-config>
session.invalidate();