Websocket、服务器发送事件(SSE)和HTTP2';服务器推送?
有人能简要介绍一下这些看起来相似的技术之间的区别吗Websocket、服务器发送事件(SSE)和HTTP2';服务器推送?,http,websocket,push-notification,http2,Http,Websocket,Push Notification,Http2,有人能简要介绍一下这些看起来相似的技术之间的区别吗 网袋 服务器发送事件(SSE) HTTP2的服务器推送 我知道这三个都是服务器的“推送”响应,而不是客户端的请求 乍一看,似乎所有的都是相同的。我需要更清楚地了解差异。WebSocket:双向异步通信。到目前为止,HTTP/2还不能很好地工作,但正在努力实现这一目标。(例如和。) SSE:服务器可以通知浏览器事件。使用普通HTTP,即使使用HTTP/2也能很好地工作。通过定期POST请求从客户机向服务器发出通知,可以模拟SSE在两个方向上的
- 网袋
- 服务器发送事件(SSE)
- HTTP2的服务器推送
乍一看,似乎所有的都是相同的。我需要更清楚地了解差异。WebSocket:双向异步通信。到目前为止,HTTP/2还不能很好地工作,但正在努力实现这一目标。(例如和。) SSE:服务器可以通知浏览器事件。使用普通HTTP,即使使用HTTP/2也能很好地工作。通过定期POST请求从客户机向服务器发出通知,可以模拟SSE在两个方向上的异步通信。在HTTP/2中,这些请求与同一来源的其他所有请求位于同一套接字中,因此可以避免建立新连接的成本。但是,服务器端处理POST请求的处理成本可能高于使用本机WebSocket
HTTP/2推送:与上述两种完全无关,它是一种服务器提前将资产推送到浏览器的机制。可能的应用程序:。从理论上讲,HTTP/2推送和SSE可以结合使用,使浏览器可以在没有初始往返延迟的情况下使用事件 这是一个很酷的短版本。。。但它隐藏了陷阱和错误,有利于提供一个良好的概述,有更多的信息,和。。。此外,WebSocket通过在握手过程中返回到HTTP/1.1,与HTTP/2完美配合。过去将HTTP/2与Websockets合并的努力已被放弃,尽管可能会有新的努力,但我不知道有任何努力。@Myst:我的答案见丹尼尔·斯滕伯格的编辑。WISH和websockets2-over-http2正在w3工作组邮件列表中讨论。