Session机制的基本原理

Session是Web开发的一个重要内容,Web服务器通常都会使用session来记录和识别用户。

1. Session的基本机制

session机制是这样运行的:

客户端浏览器访问Web服务器,那么,由于是第一次访问,用户的请求头信息将不包含sessionid:

Session机制的基本原理_第1张图片

此时,从图中可以看出,服务器返回的Response Headers中,set-cookie要求浏览器设置一些cookie信息,

其中包含了sessionid。这里,对于tomcat,sessionid的名称为jsessionid。

当用户第二次访问的时候,将附带将jsessionid发送给服务器:

Session机制的基本原理_第2张图片

服务器拿到这个sessionid之后,会查找是否存在这样一个id,如果存在,则可以从request对象中取出这个session对象。

由此,可以看出,用户和服务器之间的识别,就通过这个sessionid来实现。

2. session失效

如果用户在session有效期内没有访问,比如,第一次是10:00,第二次访问是10:40,而服务器设置了session过期时间为30分钟,那么用户再次访问的时候,它的sessionid将会失效。如果仍然使用request.getSession(),拿到的将会是一个新的session。这里,有一点很重要,这里的过期时间,是两次访问之间的间隔时间。如果第一次访问在10:00,第二次是10:20,第三次是10:40,那么用户session将一直有效。

如下代码中,设置session有效期为1分钟,前五次访问,持续了一分多钟,但是,每次访问之间的间隔都小于一分钟,所以一直是同一个session。

但是,当用户在最后一次访问之后,间隔了大于一分钟的时间再次访问的时候,用户的sessionid发生了变化,原来的session已经失效,用户绑定的是新的session:

Session机制的基本原理_第3张图片




你可能感兴趣的:(Session机制的基本原理)