作者:SIX道仙人 | 来源:互联网 | 2023-01-30 17:50
它表示HTTP 2优于HTTP 1的优势之一是HTTP2具有数据流.在一个TCP/IP连接中最多可以有256个不同的流.但是,在HTTP 1中,最多可以有6个并行连接.HTTP 2允许从256个资源读取数据,这是一个改进,但我认为6个连接(在HTTP 1中)具有比一个TCP/IP连接(在HTTP 2中)更好的吞吐量.尽管如此,HTTP2被认为比HTTP 1更快.所以...我不能正确理解什么?
1> Barry Pollar..:
6个物理连接比一个物理连接具有更多的吞吐量,其他条件相同.
但是,这同样适用于同一台计算机之间的6个不同的TCP/IP连接,因为这些是虚拟连接(假设您没有两个网卡).限制因素通常是您的Internet连接的延迟和带宽,而不是TCP/IP协议本身.
事实上,由于TCP连接的创建和处理方式,它实际上是很多更有效有一个TCP/IP连接.这是因为初始连接的成本(三次TCP握手,HTTPS握手以及TCP连接使用一个名为Slow Start的进程慢慢将其容量建立到网络可以处理的最大速度这一事实)在持续保持连接的过程中(因为慢启动过程会定期再次发生,除非连接一直被充分利用 - 这种情况更可能发生在一个用于所有事情的连接上,而不是在您的请求时发生分为6个连接).
此外,HTTP/1.1一次只允许一个请求在飞行中,因此在返回响应之前无法使用连接(忽略在HTTP/1.1中根本不支持的流水线操作).这不仅限制了6个连接的有用性,而且还意味着连接未被充分利用的可能性更大,考虑到上面提到的TCP中未充分利用的连接问题,这意味着它们可能会因为它们减速而变慢再次通过慢启动过程以建立最大容量.然而,HTTP/2允许这256个流允许请求同时在飞行中.这比仅仅6个连接更好,并允许真正的多路复用.
如果你想了解更多,那么Ilya Grigorik已经写了一本关于这个主题的优秀书籍,称为高性能浏览器网络,甚至可以在线免费获得.