webx—基于cookie的session

cookie的发送

1.创建Cookie对象

2.设置最大时效
3.将Cookie放入到HTTP响应报头

如果你创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cookie:存储在浏览器的内存中(服务器自动创建一个cookie并将jsessionId作为key,sessionId的值作为value发送到客户端浏览器内存中),用户退出浏览器之后被删除。如果你希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该cookie。发送cookie需要使用HttpServletResponse的addCookie方法,将cookie插入到一个Set-Cookie HTTP请求报头中。由于这个方法并不修改任何之前指定的Set-Cookie报头,而是创建新的报头,因此我们将这个方法称为是addCookie,而非setCookie。

>>>>>响应报头必须在任何文档内容发送到客户端之前设置。

***************************************************************************

会话cookie和持久cookie

如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里。

如果设置了过期时间(setMaxAge(60*60*24)),浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存的cookie,不同的浏览器有不同的处理方式。

*****************************************************************************

cookie机制和session机制的区别

Cookie是客户端的存储空间,由浏览器来维持。具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看到,由于在服务器端保持状态的方案在客户端也需要保存一个标识(jsessionid),所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上还有其他选择,比如说重写URL(链接后面跟上jsessionid参数)和隐藏表单域。


对session和cookie的一些理解》,这篇文章介绍的还是挺详细,可以参考下

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

当然这并不是本文的重点。

由于http协议本身是无状态的,为了连接上下文的请求,需要记录一些基本信息,比如登陆成功后,会将用户信息存入session中,下一次http请求时,首先会查看session,如果有值,则认为是登陆过;否则跳到登陆页面。session对象通常保存在内存里。
当面对高并发,高访问量时,为了提高系统的扩展性,我们会使用集群,将一个app应用部署到N台服务器中,这些对用户来讲是透明的,集群的作用相当于一台“超级服务器”。 这种策略固然很好,有效分摊了流量,但是如何保证前后两次请求拿到的session信息一致呢?


1.  每台服务器都备份一份session信息,服务器之间保持同步,当session的值改变时,会复制到其它的机器上。但是随着机器的增加,网络的负担会很重,可扩展性较差。
2.  将session保存在单一数据源中,被所有的集群共享。这种方案缺少应用服务厂商的支持,很少有应用服务器直接支持这种方案。另外,一旦数据源崩溃,所有的应用都不能提供正常服务。
3.  将session信息保存客户端,也就是cookie中,采用时间换空间的方式,每次都要解析cookie数据到session中,从而来确定用户是否登陆,这对于当代高性能服务器来讲完全不是什么问题;另外由于受到cookie的一些标准限制,所以一些细节需要特别注意/ 

>>由于各浏览器支持的cookie的标准不一致,通常会选择最低标准,每个domain下最多20个,每个cookie的长度不能超过4K
>>安全性。一旦cookie被人拦截,拦截者并不需要对其解密,知道其真实含义,只要原样转发即可达到目地
>>另外也有一些信息不会存于cookie中,比如统计一个页面提交的频率或防止重复提交表单等,我们会在server端保存一个计数器


尽管有这些缺点,但是相比其优点来讲,这些都是浮云。

>>在底层框架中,HttpservletResponse写入cookie时,要控制其个数、大小
>>尽管拦截者原样转发cookie一样可以达到目地,我们仍然要对重要cookie字段加密
>>cookie中尽量不要存一些重要信息,比如密码等,这样即使被盗也不会造成重大损失
>>cookie字段尽量加上生命周期,小偷拿到过期cookie的可能性上升,降低风险





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 何为WebEx Recorder   一款把下来的工具。 2. 特点   小巧:软件下载仅2.5MB,装后4.3MB   高效:试用时录制培训内容(含声音)1.5小时才6MB   商用级:此产品不是面向个人的软件,而是完整的商业交流方案中的一个小工具,因此,效率和稳定性可以保证。   文件格式:独有的wrf格式,需用它的player播放(Recorder安装中会带的)。 用editor可以转换为WMV格式,很容易编辑的。 3. 下载 http://www.meetingvisuals.com/record_play.htm   建议下载ediotr(实为player+recorder+editor) 从安装后的情况也可以看出,所谓的放、录、编其实对应同一个exe: "D:\program files\WebEx\atauthor.exe" -PLAYER "D:\program files\WebEx\atauthor.exe" "D:\program files\WebEx\atauthor.exe" -EDITOR 4. 用户评价摘录 很好的东西,以前微软的MSDN网络讲座都是用他来录制,呵呵。不过以前都是看,没用它来录。。。 5. 公司介绍   WebEx (美国网迅)于1996年创建于美国硅谷,并于2000年成功在美国纳斯达克上市(webx),公司致力于基于网络实时交互式多媒体通信平台技术的研究、发展、推广与应用,为全球化的政府办公、商务交流、科教活动提供了一个崭新的网络服务平台。   WebEx公司目前拥有超过7000家大企业客户,包括世界500强的大多数企业,如GE、IBM、Oracle、Sun、HP、Yahoo、微软、惠普、波音、壳牌石油、柯达、东芝等跨国公司,同时, AT&T、MCI、NTT、法国电信、德国电信等电信运营商已经成为WebEx运营服务的代理商。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值