1

当客户端重新连接到 SSL 服务器时,SSL 会话缓存消除了重新计算该客户端先前使用的相同加密协议的需要(同时还将所需的通信往返次数从 2 次减少到 1 次)。

然而,websocket 协议规定客户端不应在没有充分理由的情况下从 websocket 服务器断开连接(例如,因为发生错误或用户关闭了浏览器/应用程序选项卡/窗口)(?);因此,当在 SSL 层之上建立 websockets 时,服务器可以简单地假设任何 websocket 连接是活动的,除非另有通知,在此期间任何连接的底层 SSL 会话也可以安全地假设保持有效?

此外,websocket 服务器需要能够处理许多并发的长寿命连接,并且因为 SSL 会话缓存需要为每个单独的连接存储(?),在这种情况下实现这些缓存可能会损害性能,因为大内存开销,对吧?

对不起; 这可能不仅仅是一个简单的问题,但我想验证我对这些问题的理解是否足够。

4

1 回答 1

1

出色地,

我认为这可能取决于软件架构。假设您有一个有 100 个页面的站点,并且用户经常在它们之间导航。他们中的许多人都有一个用于某些特殊目的的 websocket,但它只在显示该页面期间保持活动状态。然后,当您经常关闭/打开 WebSockets 时,缓存将是有意义的。

另一方面,您可能有一个只有一个页面的站点,并且您在其中打开了一个 websocket。内容由 WebSocket 和 Ajax 请求管理,但 WebSocket 在整个会话期间保持活动状态。在这种情况下,为 WebSocket 缓存 SSL 没有多大意义。

所以,最后,我会说这取决于实施。如果您已经有一个站点,您应该分析它的行为方式并调整您的缓存需求。另一方面,如果您开始设计一个新网站,了解不同场景的优缺点可能会帮助您构建更好、更高效的设计。

问候

于 2013-05-31T08:22:59.400 回答