繁体   English   中英

Websocket,Server Sent Events(SSE)和HTTP2的Server Pushing之间有什么区别?

[英]What is the difference between Websocket,Server Sent Events (SSE) and HTTP2's Server Pushing?

有人可以简要介绍这些看似相似的技术之间的区别吗?

  • 的WebSocket
  • 服务器发送事件(SSE)
  • HTTP2的服务器推送

我知道所有这3个都是“ 推动 ”来自服务器的响应, 而不是客户端的请求。

初看起来 ,似乎都是一样的 。我需要更清楚地了解差异。

Websockets:双向异步通信。 到目前为止,HTTP / 2并不能很好地运行,但正在努力实现这一目标。 (例如WISHwebsockets2-over-http2 。)

SSE:服务器可以通知浏览器事件。 使用普通的HTTP,即使使用HTTP / 2也能正常工作。 通过常规POST请求从客户端向服务器发出通知,可以通过SSE模拟双向异步通信,在HTTP / 2中,这些请求与同一来源的所有其他请求在同一个套接字中,因此建立新连接的成本可以避免。 但是,服务器端处理POST请求的处理成本可能高于使用本机websockets。

HTTP / 2推送:与上面两者完全无关,它是服务器提前将资源推送到浏览器的机制。 可能的应用: 在PHP引擎创建HTML时发送CSS和Javascripts 理论上,HTTP / 2 Push和SSE可以组合在一起,使浏览器无需初始往返延迟即可使用事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM