再谈session 和 cookie的差异

我们都知道 session是存储在服务器端的,cookie是存储在客户端的;

他们两者之间又有什么联系呢?这点要先从HTTP先说起。

HTTP协议是一种无状态的 通信协议 。那么这就以为着 客户端按道理是需要每次请求之前都要和服务器做连接的。
但是每次都进行这种连接,会非常耗时,并且这些重复的网络请求的意义都不大,所以如何避免这些重复的工作就成为了聪明人们发挥聪明的地方了。

cookie的特点就是比较大,可以储存一些信息,比如数据。
session一般保存的都是用户信息之类的数据。

在客户端请求服务器的这个过程中,请求到了服务器端时,Tomcat或者jetty之类的容器会生成一个:JsessionID。
这个ID号 是不唯一的,大部分的session机制都会将这个JsessionID 保存到cookie当中去。同时session中也有这个JsessionID。

然后又因为浏览器中的cookie它是保存到 计算机的硬盘中的,所以就算我们关闭了浏览器只要不人为的清空浏览器中的缓存cookie,那么浏览器按道理就会一直保存着这个JsessionID,只要通过这个JsessionID就能找到 这个用户的session信息。

但是如果你的计算机处于开机状态又没有锁屏,结果别人打开了你的浏览器,就可以直接获取你的一些信息这样也太不安全了。所以服务器端也会对这个session进行一个 时间限制,一般是30分钟 可以在web.xml中设置。

30分钟过后服务器会怎么处理这个信息呢?
当距离客户端上一次使用session的时间超过这个失效时间时,服务器就可以认为客户端已经停止了活动,才会把session删除以节省存储空间。

以前只是知道个大概,后来仔细点把这个事给想清楚了,很简单的知识,但又很基础很重要的知识,还是有必要记一记的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值