jsessionid是怎么产生的

本文详细介绍了JSessionID的原理及其在Web应用程序中的作用。当客户端首次访问时,服务器会创建session并返回sessionID。之后的请求,客户端会携带sessionID以便服务器识别并恢复会话状态。即使服务器关闭或session过期,客户端再次请求时,服务器会根据sessionID判断是否需要新建session。了解这一机制对于优化Web应用性能和管理用户会话至关重要。
摘要由CSDN通过智能技术生成

1、初识jsessionid

  • Jsessionid只是tomcat的对sessionid的叫法,其实就是sessionid;在其它的容器也许就不叫jsessionid了。

2、sessionid生成并返回客户端的运行机制

在这里插入图片描述

  • 当客户端首次访问时,创建一个新的session对象.并同时生成一个sessionId,并在此次响应中将sessionId以响应报文的方式送回客户端浏览器内存或以重写url方式送回客户端,来保持整个会话;
  • 只要sever端的这个session对象没有销毁,以后再调用request.getSession() 时就直接根据客户端的sessionId来检索server端生成的session对象并返回,不会再次去新建,除非根据此sessionId没有检索到 session对象。

3、sessionid运行场景

1)、在server没有关闭,并在session对象销毁时间内,当客户端再次来请求server端的servletjsp时,将会将在第一次请求时生成的sessionId并附带在请求信息头中并向server端发送,server端收到sessionId后根据此 sessionId会去搜索(此过程是透明的)server对应的session对象并直接返回这个session对象,此时不会重新去建立一个新的 session对象。

2)、当server关闭(之前产生的session对象也就消亡了),或session对象过了其销毁时间后,浏览器窗口不关,并在本浏览器窗口再次去请求sever端的servletjsp时,此时同样会将sessionId(server关闭或 session销毁时生成的sessionId)发送到server端,server根据sessionId去找其对应的session对象,但此时 session对象已经不存在,此时会重新生成一个新的session对象,并生成新的sessionId并同样将这个新生成的sessionId以响应报文的形式送到浏览器内存中.

3)、当server没有关闭,并session对象在其销毁时间内,删除浏览器内存中的sessionId(当请求一个jsp页面回客户端后,关闭此浏览器窗口,此时其内存中的sessionId也就随之销毁),在重新去请求sever端的servletjsp时,会重新生成一个 sessionId给客户端浏览器,并存在浏览内存中

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值