Session会话追踪技术

一、session会话

首先Session为:服务器端的会话技术,在同一次的会话中多次请求中访问的是同一数据,保证不同会话之间的独立性。在HTPP协议中Http请求是无状态的,只有在客户端连接时服务器才将客户端与之相应的session对应,那么通过什么对应客户端呢?也就是接下来所说的SessionID。

二、session会话的过程

  1. 客户端首次向服务器发起请求,服务器(Tomcat)会为该请求分配一个session对象并同时为该对象分配唯一一个JsessionID存入cookie中将其返回至客户端。
  2. 当客户端继续向服务器发起请求,服务器端将不再分配一个session对象,而是通过上次分配的JsessionID找到之前分配的session对象,同时上次对服务器操作的一些数据也会存在。
  3. 只有当客户端重新打开浏览器、session超时或者服务器重启时,再进行访问服务器才会分配新的session对象和JSESSIONID。

三、cookie和session

session会话的机制是基于cookie的,因为服务器并不会保存客户端的具体信息去确认是否为同一会话,只有通过客户端每次发起请求所携带的JSESSIONID确认对应的session。
两者之间是存在区别的:

  1. session是在服务器端保存客户端的信息,cookie是在客户端保存用户信息
  2. session保存的是任意对象,cookie保存的则是字符串
  3. 一般默认cookie的生命周期是与session的生命周期一样,但可以通过设置延长cookie的生命周期,进而达到长期存储在物理磁盘上或浏览器内存中
  4. cookie相对来说不安全,session相对来说安全

获取session对象的代码如下:

		HttpSession session = req.getSession();
		System.out.println("Test_Session的doGet被请求到了");
		System.out.println(session.getId());

如图:服务器(Tomcat)为客户端分配的JSSEIONID
在这里插入图片描述
控制台获取的sessionID与和客户端获取的sessionID一致
在这里插入图片描述

Tomcat服务器分配的sessionID是JSESSIONID,不同的服务器所叫的名称不一样,但目的是一样的

四、总结

session会话的机制基于cookie中的sessionID,可以确保在同一次会话中多次请求获取到的数据是正确的。即在servlet生命周期中对象有三种存储域分别为:request、session、application.从而session确保了不同会话之间的数据是独立存在。

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MM呦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值