保存会话数据的两种技术之一Session

上一篇博客中提到了保存会话数据的技术之一的Cookie。它的特点是将数据保存在客户端,那么有没有一个技术是将数据保存在服务器端呢,答案是肯定的。这种技术就是这篇博客将要介绍的session。

1. 出现背景

        在上一篇博客中提到cookie的出现背景是为了解决HTTP协议的无状态性而出现的技术,在这里session也是一样的。我们希望实现web的动态交互,但是基于的HTTP协议却是无状态的,这里就出现了一个难题:一个无状态的协议怎样才能关联两次连续的请求呢?也就是说无状态的协议怎样才能满足有状态的需求呢?此时有状态是必然趋势而协议的无状态性也是木已成舟,因此我们需要一些方案来解决这个矛盾,来保持HTTP连接状态,于是出现了cookie和session。

2.session工作原理

       最上面提到session的作用就是:将用户数据保存在服务器端,使得用户能够访问到自己的数据而不会使得许多用户的数据混乱。那么如何实现呢,下面就来介绍一些session的工作原理。

                
       客户端(图中的张三,李四)和服务器连接上之后在服务器端开辟一块属于自己的内存空间,空间建立成功之后马上断开和服务器的联系.这样子不同的客户端就在服务器中有了只属于自己的一块空间;

      下面马上出现了另外一个问题:如何客户端在下次访问的时候如何找到属于自己的那块内存空间?为了解决这个问题就引入了一个sessionid(id我们都知道,总是做为我们的一个唯一性标识而出现的).sessionid就是作为一个每个客户端的唯一标识而存在在服务器端和客户端的.也就是说在客户端和服务器端都存在一个sessionid.这样子通过sessionid就交互了。

      其实客户端的sessionid如果存放在cookie中就可能出现另外一个问题,在客户端禁用了cookies就得不到sessionid,这样子就完不成和服务器端的通信了。这个问题也有对应的解决方法即是url重写;这里先不说呢。

       唠叨完这些就会发现其实session可以简单的理解为是客户端(浏览器)在服务器上为自己开辟的一块空间。

3.session的特点

1.服务器的一块内存,保存信息到服务器端。

2.和客户端窗口对应

3.客户端和服务器都有对应的sessionid

4.session和cookies的区别

对于两者之间的联系在标题中其实已经给出了,两个都是保存会话的技术。那么两者之间的区别呢?

1.Cookie是把用户的数据写给用户的浏览器。将数据保存在客户端

2.Session技术把用户的数据写到用户独占的session中。将数据保存在服务器端。

3.Session对象由服务器创建,开发人员可以调用request对象的getSession方法得到session对象。

5.总结

        Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值