Session共享

本文探讨了Session共享的不同方式,包括客户端Cookie存储、粘性会话模式和集中式存储解决方案。介绍了每种方法的优点与局限性,并提供了实现思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[b]Session共享[/b]


1.session是保存在服务器上的。
2.存储在服务器的内存中,tomcat的StandardManager类将session存储在内存中,也可以持久化到file,数据库,memcache,redis等。客户端只保存sessionid到cookie中,而不会保存session,session销毁只能通过invalidate或超时,关掉浏览器并不会关闭session。
3.memcached和redis都有自己的过期时间设置,适合用地保存session


[b]session共享的几种思路,我总结如下:[/b]
1.把原来存储在服务器磁盘上的session数据存储到客户端的cookie中去。
(1)数据保存在cookie中这种做法有好处,也有坏处。
(2)好处是服务器的压力减小了,因为session数据不存在服务器磁盘上。根本就不会出现session读取不到的问题。
(3)带来的弊端是:网络请求占用很多。每次请求时,客户端都要通过cookie发送session数据给服务器。另外,浏览器对cookie的大小(4k)存在限制。每个浏览器限制是不同的。

2.分发机制来实现,也叫做sticky模式(粘性会话模式),同一个用户的访问请求都被派送到同一个服务器上。
(1)如果这台机子挂掉了,那么后续的请求按照session的规则还是会分发到这台服务器上去,但是现在不可用了。
(2)

3.做一个中间层,专门来存储所有访问涉及到的session。(就是所有session保存到同一个地方,而不是存在本地应用服务器)


如果不用session也可以用自己做一套,生成一个ID保存到cookie,请求到来时从cookie得到ID,从缓存中得到这个ID对应的信息,再用过滤器或应用中使用这些信息就可以了


参考原文(session多服务器共享的方案):[url]http://www.cnblogs.com/wangtao_20/archive/2013/10/29/3395518.html[/url]
参考原文(sessionid如何产生?由谁产生?保存在哪里?):[url]http://www.cnblogs.com/woshimrf/p/5317776.html[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值