第1题:什么是http2 的多路复用

第1题:什么是http2 的多路复用

前言

码云笔记-前端博客,每天提供一道高频面试题给大家,帮助大家查漏补缺,今天就把最近半月汇总的面试题和部分答案发给大家,希望对大家有所帮助。

同时,欢迎PR你认为不错的面试题,欢迎在项目讨论区留下你的答案,共同参与这个项目,由于时间问题,我只提供部分题目和部分答案,更多优质答案希望小伙伴们分享出来。

答案

在HTTP/1中,每次请求都会建立一次TCP连接,也就是我们常说的3次握手4次挥手,这在一次请求过程中占用了相当长的时间,即使开启了Keep-Alive,解决了多次连接的问题,但是依然有两个效率上的问题:

  • 第一个:串行的文件传输。当请求a文件时,b文件只能等待,等待a连接到服务器、服务器处理文件、服务器返回文件,这三个步骤。我们假设这三步用时都是1秒,那么a文件用时为3秒,b文件传输完成用时为6秒,依此类推。(注:此项计算有一个前提条件,就是浏览器和服务器是单通道传输)
  • 第二个:连接数过多。我们假设Apache设置了最大并发数为300,因为浏览器限制,浏览器发起的最大请求数为6(Chrome),也就是服务器能承载的最高并发为50,当第51个人访问时,就需要等待前面某个请求处理完成。

HTTP2采用二进制格式传输,取代了HTTP1.x的文本格式,二进制格式解析更高效。

多路复用代替了HTTP1.x的序列和阻塞机制,所有的相同域名请求都通过同一个TCP连接并发完成。在HTTP1.x中,并发多个请求需要多个TCP连接,浏览器为了控制资源会有6-8个TCP连接都限制。

HTTP2中

  • 同域名下所有通信都在单个连接上完成,消除了因多个TCP连接而带来的延时和内存消耗。
  • 单个连接上可以并行交错的请求和响应,之间互不干扰

更多答案请下方留言哦

未经允许不得转载:码云笔记 » 第1题:什么是http2 的多路复用
喜欢(1) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

在线客服

在线客服

  • 扫描二维码,微信联系 扫描二维码,微信联系