服务器在与客户端新建连接的时候生成一个唯一的Session ID发送给客户端,客户端与服务器均保存这个 会话的状态。当需要重新建立SSL会话时,客户端发送保存的ID和会话状态给服务器,如果服务器 也有这个ID的会话状态,则可以复用这个ID的会话信息,否则就会创建新的会话。祥见[RFC 2246][] 第23-30页。
绝大多数浏览器支持在HTTPS中使用Session ID会话复用技术来恢复已有会话。
在Node.js中,客户端通过等待 ['session'
][]事件来获取会话信息,并提供[tls.connect()
][]中的
session
选项来复用会话。服务器必须实现['newSession'
][]和['resumeSession'
][]事件的
hander,并使用会话ID作为查找的key来保存和恢复会话信息。在负载均衡和集群下,想要复用会话需要使用
类似Redis的共享缓存机制来存储会话信息。