当websocket已经可用时,为什么需要使用HTTP2?

当websocket已经可用时,为什么需要使用HTTP2?,websocket,http2,Websocket,Http2,当websocket已经可用时,为什么需要使用HTTP2 Nathan Aw(新加坡)当我们有WebSocket时,为什么需要HTTP/2?既然我们有TCP,为什么我们需要WebSocket呢?甚至IP?协议基本上是可由独立方实施的商定标准 WebSocket适合于双向通信,但除此之外,大部分都是非结构化的,并且是特定于应用程序的。HTTP(主要)是对服务器的一系列单向请求(请求资源,接收答案)——尽管HTTP/2通过HTTP/2推送略微增强了这一点,而二进制帧层在理论上可以更多地用于适当的双向

当websocket已经可用时,为什么需要使用HTTP2


Nathan Aw(新加坡)

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

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

看看HTTP,它有WebSockets没有的各种额外功能。包括定义的方法、头和压缩。这允许在各种HTTP实现之间进行定义良好的理解,以促进其用例的通信,包括缓存、压缩、重定向、错误处理等功能。。。等等。如果你不得不在WebSockets(这是一个非常原始的协议)的基础上重新设计所有这些,你最终会得到一个类似HTTP/2的协议

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

最后,还应注意的是,无论哪种情况。它们是不同的,有不同的优点和缺点