http持久连接和ssl会话

时间:2011-01-16 13:55:58

标签: http tomcat https ssl

HTTP是一种应用程序协议,可以关闭并重新打开底层TCP连接,而不会影响HTTP应用程序(性能除外)。
通过使用HTTP1.1,我们使用持久连接,但服务器或客户端仍然可以随时关闭连接 对于安全性,HTTP通过SSL / TLS使用TCP 我的理解是SSL的行为很像应用程序,至少这是TCP“查看”SSL的方式 我的问题是,如果底层TCP套接字在安全连接建立后的某个时刻关闭,这是否意味着SSL会话变为无效并且各方应该重新开始ssl握手?
或者底层TCP连接与TLS会话无关?

谢谢!

2 个答案:

答案 0 :(得分:4)

  

这是否意味着SSL会话失效,各方应该从ssl握手开始?

是的,SSL / TLS会话结束,必须重新建立握手。 TLS包括恢复会话的机制(仍然会执行一些操作,但不会完全握手),但并非所有应用程序都支持它。

有关恢复的技术细节,请参阅http://ietf.org/rfc/rfc2246.txt,F.1.4。

答案 1 :(得分:4)

http://publib.boulder.ibm.com/httpserv/ihsdiag/ihs_performance.html#SSL

SSL会话是客户端和Web服务器之间的逻辑连接,用于安全通信。在SSL会话建立期间,公钥加密用于在客户端和服务器之间交换共享秘密主密钥,并确定通信的其他特征,例如密码。使用在SSL握手期间创建的共享密钥,使用对称密钥加密对会话中的后续数据传输进行加密和解密。

共享密钥的生成非常占用CPU。为了避免为每个TCP连接生成共享密钥,可以为多个连接重用相同的SSL会话。客户端必须请求在后续握手中重用相同的SSL会话,并且服务器必须缓存SSL会话标识符。满足这些要求时,后续TCP连接的握手需要的服务器CPU要少得多(在某些测试中减少80%)。通常使用的所有Web浏览器都能够重用相同的SSL会话。但是,自定义Web客户端有时没有必要的支持。