http2真的可以只用一个连接?

http2虽然可以多路复用,但真的可以只用一个连接吗?TCP协议传输数据只能一份一份的传,虽然可以不等待某个请求先响应,但排队是串行,肯定比并行慢。

阅读 2k
1 个回答

可以自己做个简单的试验,看图
http
用Node.js实现一个http1和http2服务器。
用客户端访问相同的页面,9306端口的http2服务跟客户端只用了一个TCP连接。
9307端口的http1服务跟客户端建立了6个连接。

连接数量少的时候,HTTP1可能会比HTTP2快,但是连接数量多的时候,HTTP2明显性能更好。
因为浏览器对同域名的并发连接数是由限制的,一般不超过6个TCP连接。
比如你的网页有许多图片、脚本、样式、fetch、XHR请求的时候,HTTP1同一时刻只能下载6个文件,其他就得排队等候。
如果是HTTP2,由于TCP连接可以复用,不会出现阻塞现象。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进