Websocket,服务器发送事件(SSE)和HTTP2的服务器推送之间有什么区别?

本文最后更新于:2023年3月19日 晚上

Websockets
双向异步通信。到目前为止,HTTP / 2 不能很好地工作,但是正在努力使之成为现实。 (例如 WISH 和 websockets2-over-http2。)
SSE
服务器可以将事件通知浏览器。使用普通的 HTTP,即使在使用 HTTP / 2 时也能很好地工作。通过使用常规 POST 请求从客户端向服务器发出通知,可以通过 SSE 在两个方向上模拟异步通信,在 HTTP / 2 中,这些请求与同一个源的所有其他对象都放在同一个套接字中,因此建立新连接的成本是可以避免的。但是,在服务器端处理 POST 请求的处理成本可能会比使用本机 Websocket 更高。
HTTP / 2 推送
与上述两者绝对无关,它是服务器将资产提前推送到浏览器的一种机制。可能的应用程序:在 PHP 引擎创建 HTML 的同时发送 CSS 和 Javascript。从理论上讲,可以将 HTTP / 2 推送和 SSE 结合使用,以使浏览器可以使用事件,而无需初始往返延迟。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!