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

Muh*_*mer 13 websocket

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

谁能请我澄清一下?我想,我似乎错过了这个概念.

Dar*_*ook 14

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

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

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

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