Session到底占多少session服务器集群资源

leizhimin 的BLOG
用户名:leizhimin
文章数:725
评论数:2710
注册日期:
阅读量:5863
阅读量:12276
阅读量:376143
阅读量:1069251
51CTO推荐博文
深入理解HTTP Session
session在web开发中是一个非常重要的概念,这个概念很抽象,很难定义,也是最让人迷惑的一个名词,也是最多被滥用的名字之一,在不同的场合,session一次的含义也很不相同。这里只探讨HTTP Session。
为了说明问题,这里基于Java Servlet理解Session的概念与原理,这里所说Servlet已经涵盖了JSP技术,因为JSP最终也会被编译为Servlet,两者有着相同的本质。
在Java中,HTTP的Session对象用javax.servlet.http.HttpSession来表示。
1、概念:Session代表服务器与浏览器的一次会话过程,这个过程是连续的,也可以时断时续的。在Servlet中,session指的是HttpSession类的对象,这个概念到此结束了,也许会很模糊,但只有看完本文,才能真正有个深刻理解。
2、Session创建的时间是:
一个常见的误解是以为session在有客户端访问时就被创建,然而事实是直到某server端程序调用 HttpServletRequest.getSession(true)这样的语句时才被创建,注意如果JSP没有显示的使用 &% @page session="false"%& 关闭session,则JSP文件在编译成Servlet时将会自动加上这样一条语句 HttpSession session = HttpServletRequest.getSession(true);这也是JSP中隐含的 session对象的来历。
由于session会消耗内存资源,因此,如果不打算使用session,应该在所有的JSP中关闭它。
1)、访问*.html的静态资源因为不会被编译为Servlet,也就不涉及session的问题。
2)、当JSP页面没有显式禁止session的时候,在打开浏览器第一次请求该jsp的时候,服务器会自动为其创建一个session,并赋予其一个sessionID,发送给客户端的浏览器。以后客户端接着请求本应用中其他资源的时候,会自动在请求头上添加:
Cookie:JSESSIONID=客户端第一次拿到的session ID
这样,服务器端在接到请求时候,就会收到session ID,并根据ID在内存中找到之前创建的session对象,提供给请求使用。这也是session使用的基本原理----搞不懂这个,就永远不明白session的原理。
下面是两次请求同一个jsp,请求头信息:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/806734.png" border="0" />650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/827125.png" border="0" />
通过图可以清晰发现,第二次请求的时候,已经添加session ID的信息。&
3、Session删除的时间是:
1)Session超时:超时指的是连续一定时间服务器没有收到该Session所对应客户端的请求,并且这个时间超过了服务器设置的Session超时的最大时间。
2)程序调用HttpSession.invalidate()
3)服务器关闭或服务停止
4、session存放在哪里:服务器端的内存中。不过session可以通过特殊的方式做持久化管理。
5、session的id是从哪里来的,sessionID是如何使用的:当客户端第一次请求session对象时候,服务器会为客户端创建一个session,并将通过特殊算法算出一个session的ID,用来标识该session对象,当浏览器下次(session继续有效时)请求别的资源的时候,浏览器会偷偷地将sessionID放置到请求头中,服务器接收到请求后就得到该请求的sessionID,服务器找到该id的session返还给请求者(Servlet)使用。一个会话只能有一个session对象,对session来说是只认id不认人。
6、session会因为浏览器的关闭而删除吗?
不会,session只会通过上面提到的方式去关闭。
7、同一客户端机器多次请求同一个资源,session一样吗?
一般来说,每次请求都会新创建一个session。
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' alt="" src="/attachment/942359.png" border="0" />
其实,这个也不一定的,总结下:对于多标签的浏览器(比如360浏览器)来说,在一个浏览器窗口中,多个标签同时访问一个页面,session是一个。对于多个浏览器窗口之间,同时或者相隔很短时间访问一个页面,session是多个的,和浏览器的进程有关。对于一个同一个浏览器窗口,直接录入url访问同一应用的不同资源,session是一样的。
8、session是一个容器,可以存放会话过程中的任何对象。
9、session因为请求(request对象)而产生,同一个会话中多个request共享了一session对象,可以直接从请求中获取到session对象。
10、其实,session的创建和使用总在服务端,而浏览器从来都没得到过session对象。但浏览器可以请求Servlet(jsp也是Servlet)来获取session的信息。客户端浏览器真正紧紧拿到的是session ID,而这个对于浏览器操作的人来说,是不可见的,并且用户也无需关心自己处于哪个会话过程中。
&本文出自 “” 博客,请务必保留此出处
了这篇文章
附件下载:  
类别:┆阅读(0)┆评论(0)
14:18:43 09:23:59 11:28:24 21:47:20 12:52:25 18:05:51 07:23:02 17:34:42 11:13:23 16:38:59 11:09:14 20:09:18 17:56:50 10:44:46 09:52:53
请输入验证码:HTTPS协议要比HTTP多用多少服务器资源
  近日,百度宣布全站开启HTTPS加密搜索。据官方表示,为解决&中间者&对用户隐私的嗅探和劫持等问题,百度将对传统HTTP通道添加SSL安全套接层,将所有百度搜索请求全部变成加密状态。
  实际上,一些国际网站,比如维基百科,在启用HTTPS前先会考虑自己计算能力是否可以承载HTTPS。那么问题来了,HTTPS要比HTTP多用多少服务器资源?
  以下为知乎网友牟旭东的观点:
  HTTPS其实就是建构在SSL/TLS之上的 HTTP协议,所以要比较HTTPS比HTTP多用多少服务器资源,主要看SSL/TLS本身消耗多少服务器资源。
  HTTP使用TCP 三次握手建立连接,客户端和服务器需要交换3个包,HTTPS除了 TCP 的三个包,还要加上 ssl握手需要的9个包,所以一共是12个包。HTTP 建立连接,按照下面链接中针对Computer Science House的测试,是114毫秒;HTTPS建立连接,耗费436毫秒。ssl 部分花费322毫秒,包括网络延时和ssl 本身加解密的开销(服务器根据客户端的信息确定是否需要生成新的主密钥;服务器回复该主密钥,并返回给客户端一个用主密钥认证的信息;服务器向客户端请求数字签名和公开密钥)。
  SSL handshake latency and HTTPS optimizations. ::
  当SSL 连接建立后,之后的加密方式就变成了3DES等对于 CPU 负荷较轻的对称加密方式。相对前面 SSL 建立连接时的非对称加密方式,对称加密方式对 CPU 的负荷基本可以忽略不记,所以问题就来了,如果频繁的重建 ssl 的session,对于服务器性能的影响将会是致命的,尽管打开HTTPS 保活可以缓解单个连接的性能问题,但是对于并发访问用户数极多的大型网站,基于负荷分担的独立的SSL termination proxy就显得必不可少了,Web 服务放在SSL termination proxy之后。SSL termination proxy既可以是基于硬件的,譬如F5;也可以是基于软件的,譬如维基百科用到的就是 Nginx。
  那采用 HTTPS 后,到底会多用多少服务器资源,2010年1月 Gmail切换到完全使用 HTTPS, 前端处理 SSL 机器的CPU 负荷增加不超过1%,每个连接的内存消耗少于20KB,网络流量增加少于2%。由于 Gmail 应该是使用N台服务器分布式处理,所以CPU 负荷的数据并不具有太多的参考意义,每个连接内存消耗和网络流量数据有参考意义。这篇文章中还列出了单核每秒大概处理1500次握手(针对1024-bit 的 RSA),这个数据很有参考意义,具体信息来源的英文网址:ImperialViolet。
  Heartbleed这个被称作史上最大的网络安全漏洞,想必很多人都有所耳闻,Heartbleed之所以能够出现,其实和我们这个问题关系还不小,前面我们谈到了频繁重建 SSL/TLS的session对于服务器影响是致命的,所以聪明的RFC 在2012年提出了 RFC6520 TLS 的心跳扩展。这个协议本身是简单和完美的,通过在客户端和服务器之间来回发送心跳的请求和应答,保活 TLS session,减少重建 TLS的session的性能开销。令人遗憾的是,openssl 在实现这个心跳扩展时,犯了一个低级的错误,没有对收到的心跳请求进行长度检查,直接根据心跳请求长度拷贝数据区,导致简单的心跳应答中可能包含了服务器端的核心数据区内容,用户名,密码,信用卡信息,甚至服务器的私有密钥都有可能泄露。心因为心跳保活的这个 BUG 在滴血,这个名字起的极度形象。
  下面开始讲一个无聊的故事,和问题关系不大,时间紧张的看官可以到此为止了。
  从前山上有座庙,庙里有个和尚......,别胡闹了,老和尚来了。
  小和尚问老和尚:ssl为什么会让HTTP安全?
  老和尚答道:譬如你我都有一个同样的密码,我发信给你时用这个密码加密,你收到我发的信,用这个密码解密,就能知道我信的内容,其他的闲杂人等,就算偷偷拿到了信,由于不知道这个密码,也只能望信兴叹,这个密码就叫做对称密码。ssl使用对称密码对HTTP内容进行加解密,所以让HTTP安全了,常用的加解密算法主要有3DES和AES等。
  小和尚摸摸脑袋问老和尚:师傅,如果我们两人选择&和尚&作为密码,再创造一个和尚算法,我们俩之间的通信不就高枕无忧了?
  老和尚当头给了小和尚一戒尺:那我要给山下的小花写情书,还得用&和尚&这个密码不成?想了想又给了小和尚一戒尺:虽然我们是和尚,不是码农,也不能自己造轮子,当初一堆牛人码农造出了Wifi的安全算法WEP,后来发现是一绣花枕头,在安全界传为笑谈;况且小花只知道3DES和AES,哪知道和尚算法?
  小和尚问到:那师傅何解?
  老和尚:我和小花只要知道每封信的密码,就可以读到对方加密的信件,关键是我们互相之间怎么知道这个对称密码。你说,我要是将密码写封信给她,信被别人偷了,那大家不都知道我们的密码了,也就能够读懂我们情书了。不过还是有解的,这里我用到了江湖中秘传的非对称密码。我现在手头有两个密码,一个叫&公钥&,一个叫&私钥&,公钥发布到了江湖上,好多人都知道,私钥嘛,江湖上只有我一个人知道;这两个密钥有数学相关性,就是说用公钥加密的信件,可以用私钥解开,但是用公钥却解不开。公钥小花是知道的,她每次给我写信,都要我的公钥加密她的对称密码,单独写一张密码纸,然后用她的对称密码加密她的信件,这样我用我的私钥可以解出这个对称密码,再用这个对称密码来解密她的信件。
  老和尚顿了顿:可惜她用的对称密码老是&和尚为什么写情书&这一类,所以我每次解开密码纸时总是怅然若失,其实我钟意的对称密码是诸如&风花&&雪月&什么的,最头痛的是,我还不得不用&和尚为什么写情书&这个密码来加密我给小花回的情书,人世间最痛苦的事莫过于如此。可我哪里知道,其实有人比我更痛苦。山下的张屠夫,暗恋小花很多年,看着我们鸿雁传书,心中很不是滋味,主动毛遂自荐代替香客给我们送信。在他第一次给小花送信时,就给了小花他自己的公钥,谎称是我公钥刚刚更新了,小花信以为真,之后的信件对称密码都用张屠夫的这个公钥加密了,张屠夫拿到回信后,用他自己的私钥解开了小花的对称密码,然后用这个对称密码,不仅能够看到了小花信件的所有内容,还能使用这个密码伪造小花给我写信,同时还能用他的私钥加密给小花的信件。渐渐我发现信件变味了,尽管心生疑惑,但是没有确切的证据,一次我写信问小花第一次使用的对称密码,回信中&和尚为什么写情书&赫然在列,于是我的疑惑稍稍减轻。直到有一次去拜会嵩山少林寺老方丈才顿悟,原来由于我的公钥没有火印,任何人都可以伪造一份公钥宣称是我的,这样这个人即能读到别人写给我的信,也能伪造别人给我写信,同样也能读到我的回信,也能伪造我给别人的回信,这种邪门武功江湖上称之&Man-in-the-middle attack&。唯一的破解就是使用嵩山少林寺的火印,这个火印可有讲究了,需要将我的公钥及个人在江湖地位提交给18罗汉委员会,他们会根据我的这些信息使用委员会私钥进行数字签名,签名的信息凸现在火印上,有火印的公钥真实性在江湖上无人质疑,要知道18罗汉可是无人敢得罪的。[1]&&&
【声明】:黑吧安全网()登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱,我们会在最短的时间内进行处理。
上一篇:【】【】全国统一热线:400-028-
密 码:
Domain Trader
VPS SERVER
CLOUD HOST
您当前的位置:&>&&>&
实际上,一些国际网站,比如维基百科,在启用HTTPS前先会考虑自己计算能力是否可以承载HTTPS。那么问题来了,HTTPS要比HTTP多用多少服务器资源?以下为知乎网友牟旭东的观点:HTTPS其实就是建构在SSL/TLS之上的 HTTP协议,所以要比较HTTPS比HTTP多用多少服务器资源,主要看SSL/TLS本身消耗多少服务器资源。HTTP使用TCP 三次握手建立连接,客户端和服务器需要交换3个包,HTTPS除了 TCP 的三个包,还要加上 ssl握手需要的9个包,所以一共是12个包。HTTP 建立连接,按照下面链接中针对Computer Science House的测试,是114毫秒;HTTPS建立连接,耗费436毫秒。ssl 部分花费322毫秒,包括网络延时和ssl 本身加解密的开销(服务器根据客户端的信息确定是否需要生成新的主密钥;服务器回复该主密钥,并返回给客户端一个用主密钥认证的信息;服务器向客户端请求数字签名和公开密钥)。SSL handshake latency and HTTPS optimizations. :: 当SSL 连接建立后,之后的加密方式就变成了3DES等对于 CPU 负荷较轻的对称加密方式。相对前面 SSL 建立连接时的非对称加密方式,对称加密方式对 CPU 的负荷基本可以忽略不记,所以问题就来了,如果频繁的重建 ssl 的session,对于服务器性能的影响将会是致命的,尽管打开HTTPS 保活可以缓解单个连接的性能问题,但是对于并发访问用户数极多的大型网站,基于负荷分担的独立的SSL termination proxy就显得必不可少了,Web 服务放在SSL termination proxy之后。SSL termination proxy既可以是基于硬件的,譬如F5;也可以是基于软件的,譬如维基百科用到的就是 Nginx。那采用 HTTPS 后,到底会多用多少服务器资源,2010年1月 Gmail切换到完全使用 HTTPS, 前端处理 SSL 机器的CPU 负荷增加不超过1%,每个连接的内存消耗少于20KB,网络流量增加少于2%。由于 Gmail 应该是使用N台服务器分布式处理,所以CPU 负荷的数据并不具有太多的参考意义,每个连接内存消耗和网络流量数据有参考意义。这篇文章中还列出了单核每秒大概处理1500次握手(针对1024-bit 的 RSA),这个数据很有参考意义,具体信息来源的英文网址:ImperialViolet。Heartbleed这个被称作史上最大的漏洞,想必很多人都有所耳闻,Heartbleed之所以能够出现,其实和我们这个问题关系还不小,前面我们谈到了频繁重建 SSL/TLS的session对于服务器影响是致命的,所以聪明的RFC 在2012年提出了 RFC6520 TLS 的心跳扩展。这个协议本身是简单和完美的,通过在客户端和服务器之间来回发送心跳的请求和应答,保活 TLS session,减少重建 TLS的session的性能开销。令人遗憾的是,openssl 在实现这个心跳扩展时,犯了一个低级的错误,没有对收到的心跳请求进行长度检查,直接根据心跳请求长度拷贝数据区,导致简单的心跳应答中可能包含了服务器端的核心数据区内容,用户名,密码,信用卡信息,甚至服务器的私有密钥都有可能泄露。心因为心跳保活的这个 BUG 在滴血,这个名字起的极度形象。
版权申明:本站文章部分自网络,如有侵权,请联系028-5 ,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点!本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
既然是技术人员,那么实际的代码是必不可少的。鉴于目前很多
Copyright & &&版权所有
电话总机:028- (20线)
400电话:400-HttpSession原理_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
HttpSession原理
||文档简介
专业IT培训机构|
总评分0.0|
&&通​过​H​t​t​p​S​e​s​s​i​o​n​案​例​一​和​H​t​t​p​S​e​s​s​i​o​n​案​例​二​的​学​习​,​大​家​对​H​t​t​p​S​e​s​s​i​o​n​的​用​途​有​了​一​定​的​了​解​。​今​天​我​们​来​深​入​了​解​H​t​t​p​S​e​s​s​i​o​n​的​原​理​。​学​习​H​t​t​p​S​e​s​s​i​o​n​的​原​理​对​大​家​运​用​H​t​t​p​S​e​s​s​i​o​n​有​很​大​帮​助​。
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 php服务器session丢失 的文章

 

随机推荐