繁体   English   中英

当 websocket 已经可用时,是否有理由需要 HTTP2?

[英]Is there a reason why HTTP2 is required when websocket is already available?

当 websocket 已经可用时,是否有理由需要 HTTP2?

Nathan Aw(新加坡)

当我们有 WebSockets 时,为什么我们需要 HTTP/2? 那么当我们有 TCP 时,为什么我们需要 WebSockets? 甚至IP? 协议基本上是可以由独立各方实施的商定标准。

WebSockets 适用于双向通信,但主要是非结构化的,并且是特定于应用程序的。 HTTP(主要)是对服务器的一系列单向请求(请求资源,接收答案)——尽管 HTTP/2 通过 HTTP/2 推送稍微增强了这一点,并且二进制帧层理论上可以更多地用于正确的双向推动。 因此,对于大多数 HTTP 用例来说,WebSockets 的完整双向性质——它们所擅长的东西——并不是真正需要的。

看看 HTTP,它有各种 WebSockets 没有的额外功能。 包括定义的方法、标头和压缩。 这允许在各种 HTTP 实现之间有明确定义的理解,以促进其用例的通信,包括多路复用、缓存、压缩、重定向、错误处理等功能。是一个非常原始的协议),你最终会得到一个类似 HTTP/2 的协议。

HTTP/2 可以使用 WebSockets 作为它的底层传输层吗? 可能,但这是一个不必要的额外抽象级别(IP->TCP->WS->HTTP2->HTTP),更不用说 websockets 通常最初是通过 HTTP 建立的。 HTTP 足够大,可以拥有自己的传输协议,因此实际上他们已经走了另一条路,并通过 HTTP/2 指定了 WebSockets

最后,还应该注意的是, HTTP/2 也不会使 Web Sockets 过时 它们是不同的,具有不同的优点和缺点。

暂无
暂无

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

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