关于B/S架构中的session【会话】

本文详细探讨了B/S架构中的session概念,解释了session作为HTTP协议一部分的会话管理机制。内容涵盖session对象在服务器端的存储、与浏览器的关系、与request对象的区别,以及session的实现原理和生命周期。在浏览器禁用Cookie的情况下session如何工作,以及session在实际项目中的应用,如保持用户登录状态。此外,还讨论了session的有效期设置和相关方法。附带测试源码链接供读者实践。
摘要由CSDN通过智能技术生成

1、什么是一次会话?

    用户打开web站点之后,在web站点当中进行相关的操作,到浏览器关闭,这个过程我们可以称为一次会话。
    每一次会话服务器端都会为当前的会话维护一个对象,该对象的名字叫做:session,翻译为:会话

2、session这种机制不属于java语言,属于B/S架构中的标准,也是HTTP协议的一部分。其它的编程语言实现的web系统开发也有session对象。

3、在Servlet规范当中session对应的类名是:javax.servlet.http.HttpSession(简称session)

4、session对象在服务器端“session列表”当中。没有在浏览器客户端上(Cookie最终保存在浏览器客户端上)

5、session对象在服务器端被维护,session对象可以保存会话的状态,但是这个会话的状态是保存在服务器端的。

   cookie只能将会话状态保存在浏览器客户端,只要换一个浏览器,状态就丢失了,但是对于session来说,由于session对象在服务器端,所以session对象可以将会话状态保存在服务器端。

6、request对象和session对象的关系?

    用户在浏览器上发送一个url,就是一次请求,一次请求对应一个request对象。
    再发送一次请求会对应一个新的request对象。request对象就是代表一次请求,生命周期较短。
    
    以上的用户在浏览器上发送了两次请求(没有关闭浏览器),或者更多次请求,底层访问的session对象是同一个,session对象就代表一次会话,一次会话包括多次请求。

7、在浏览器还处于打开的状态下,用户只要发送一次请求,就会获取到自己的session对象,这个是怎么实现的?
  session的实现原理是什么?

        当用户第一次打开浏览器,发送请求给服务器的时候,浏览器缓存当中没有Cookie数据,当然也不会发送cookie给服务器,服务器创建新的session对象和对应的Cookie数据,将Cookie数据和session对象绑定到session列表当中,然后服务器将cookie数据发送给浏览器客户端,浏览器客户端将其保存到缓存当中。
        
        只要浏览器不关闭,第2+次发送请求的时候,浏览器会自动发送缓存当中的cookie给服务器,服务器收到cookie之后,通过cookie在session列表当中找到对应的session对象。
        
        注意:和session对象相关的cookie有一个特点:jsessionid=xxxxxxx和session对象关联的cookie的name一定是:jsessionid,这个是不可变的,也可以说是一种规范。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值