websocket如何与带有header connection-keep-alive = million的http不同

时间:2013-07-12 06:16:27

标签: websocket

HTTP标头是否也会导致连接长时间保持打开状态?那有什么好处呢?

有人可以为我澄清一下吗?我想,我似乎错过了这个概念。

1 个答案:

答案 0 :(得分:14)

在TCP / IP级别,它看起来是一样的:套接字是打开的。

但从浏览器的角度来看,它们完全不同。保持活动是供浏览器重新使用以请求更多内容(例如图像,css文件,网站上的下一页)。 WebSockets用于在Javascript应用程序代码中从进行双向通信。服务器可以随时选择发送内容。您的JS应用程序可以随时将数据发送到服务器。

还值得与SSE(又名EventSource)进行比较,后者也允许服务器随时选择发送内容,但是单向(当需要发送更多数据时,您的JS应用程序必须使用XHR) 。 (WebSockets和SSE的完整比较可能变得非常复杂,所以我在这里不再多说,除了说SSE通常是正确的选择。)

还与HTTP / 2中的服务器推送(又名SPDY)进行比较。这是服务器主动推送文件(图像,css文件,网站上的下一页),但它再次处于浏览器级别,不受Javascript控制。