Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Websocket、服务器发送事件(SSE)和HTTP2';服务器推送?_Http_Websocket_Push Notification_Http2 - Fatal编程技术网

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工作组邮件列表中讨论。