作者:骨头少校_726 | 来源:互联网 | 2023-05-20 14:31
我正在阅读一篇关于启动HTTP/2 的文章.据说HTTP/2基于SPDY(快速)协议,与HTTP/1.1相比,它可以通过使用"头字段压缩"和"多路复用"提供更快的浏览速度.这些术语如何正常工作?
我是否应该相信在HTTP/1.1请求中以"一个接一个"的方式处理?
1> Daniel Stenb..:
复
使用HTTP 1.1,花费大量时间等待.浏览器发送请求并等待响应返回,然后发送另一个GET等.带宽的低效使用.有时它会使用Pipelining,但是有时请求需要等待之前完成的请求.线头阻塞问题.
通过多路复用,几乎没有等待,但浏览器可以同时询问数百种内容,并且它们将按照它们可以交付的任何顺序交付,并且没有单独的流或对象必须彼此等待.(通过优先级和流量控制来帮助正确控制它们.)
这在高延迟连接上最为显着.有关它可以做的可见且清晰的演示,请参阅https://http2.golang.org/gophertiles?latency=1000上的golang gophertiles演示(需要启用HTTP/2的浏览器)
标头压缩
此外,HTTP/2提供标头压缩,使客户端能够在TCP连接生命周期中更早地挤入更多请求.在新TCP连接的早期慢启动期间,填充更多请求以使响应更早回来是很有价值的.HTTP标头本质上是非常重复的.
服务器推送
HTTP/2服务器可以在客户端请求之前向客户端发送数据,就好像客户端要求它一样!如果服务器认为客户端可能也需要/需要,那么可以保存一半的RTT.