Session原理 [JavaWeb][Servlet]

Session原理

图解:

在这里插入图片描述

  1. 开始的时候客户端浏览器2向服务器中的ServletA中发送了一个请求, 请求了ServletA之后在ServletA中获取了一个Session对象, 然后将数据响应给了客户端浏览器2
  • 我们第一次获取Session对象id时候由于cookie请求头中并没有session ID值, 所以就是在服务器中创建一个新的Session对象
  1. 然后只要是获取了Session对象之后的响应数据中都会有一个set-cookie响应头, 响应头中存储的是创建的Session对象的ID值

  2. 然后浏览器收到这个set-cookie响应头中的session ID值之后下一次请求的时候( 也就是访问ServletB时 )就会使用cookie请求头将这个Session对象ID值传输到服务器中

  3. 然后服务器就会根据cookie请求头中的session ID值去判断服务器中是否有对应ID值的Session对象, 如果没有的话就创建一个, 如果有的话就将对应的Session对象返回

    • 这样我们就能保证每一次使用getSession()方法在一次会话中总是能获取到同一个Session对象, 获得到同一个Session域对象之后也就获取到这个Session域对象中的共享数据值
  4. 最后我们的请求三中还使用客户端浏览器1对ServletA进行了一个请求, 这个时候由于客户端浏览器1是发起了一次新的会话, 所以是不可以获取到客户端2浏览器交互过程中的Session对象的

补充:

Cookie和Session都是会话跟踪技术, 作用范围都是一次会话中

即使是一个客户端中的多个浏览器也是多个会话, 不可能是一次会话, 我们的会话是以浏览器为单位的, 不是以客户端为单位的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值