码云笔记前端博客
Home > 每日·壹题 > 第1题:什么是http2 的多路复用

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

2019-05-27 分类:每日·壹题 作者:码云 阅读(3007)

本文共计715个字,预计阅读时长需要2分钟。

第一题:什么是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连接而带来的延时和内存消耗。
  • 单个连接上可以并行交错的请求和响应,之间互不干扰

更多答案请下方留言哦

「除特别注明外,本站所有文章均为码云笔记原创,转载请保留出处!」

赞(0) 打赏

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

支付宝
微信
0

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

支付宝
微信

上一篇:

下一篇:

你可能感兴趣

共有 0 条评论 - 第1题:什么是http2 的多路复用

博客简介

码云笔记网 mybj123.com,一个专注Web前端开发技术的博客,主要记录和总结博主在前端开发工作中常用的实战技能及前端资源分享,分享各种科普知识和实用优秀的代码,以及分享些热门的互联网资讯和福利!码云笔记网有你更精彩!
更多博客详情请看关于博客

精彩评论