Session的传输步骤:
(1)服务器端程序运行的过程中创建session,并且为该session生成唯一的session ID
这个ID在随后的请求中会被用来重新获得已经创建的session。在session被创建后,就可以调用session相关的方法向session中增加内容,这些内容只会保存在服务器中。
(2)服务器将session ID 发送到客户端
(3)当客户端再次发送请求的时候,会将这个session ID带上
(4)服务器接收到请求之后就会依据session ID 找到相应的session,完成请求响应
Session的传输媒介:
1.通过cookie传输:
Session的信息是保存在服务端的。使用抓包工具从cookie中获取session ID用于模拟用户请求。session需要使用cookie作为识别标志,因此服务器向客户端发送一个名为JSESSIONID的cookie,它的值为session的ID。
2.URL地址重写:
当浏览器Cookie被禁时用。
把session的ID附加在URL路径的后面。附加的方式也有两种,一种是作为URL路径的附加信息,另一种是作为查询字符串附加在URL后面。
Session的生命周期
(1)服务器会把长时间没有活动的Session从服务器内存中清除,此时Session便失效。Tomcat中Session的默认失效时间为20分钟
(2)失效时间:从该Session未被访问,开始计时; 一旦Session被访问,计时清0
(3)浏览器支持cookie
基本应用: 跨浏览器的会话跟踪:
因为cookie在多个浏览器之间是共享的(但是不能跨域),所以可以将sessionid存在cookie中,再把cookie存入磁盘中,然后在其他浏览器中再次访问该服务器时,就会读取到cookie中的sessionid,从而回到上次访问的页面了