前端性能优化的另一种方式——HTTP2.0

  • 时间:
  • 浏览:21
  • 来源:彩神大发11选5_神彩大发11选5官方

HTTP2.0就可不可不可以 要能 多路复用并可不可不可以 要能 按优先级返回响应

大多数HTTP连接的时间都很短,想要 是突发性的,但TCP只在长时间连接传输大块数据时速率单位才最高。

最近在读一本书叫《web性能权威指南》谷歌公司高性能团队核心成员的权威之作。

1)持久连接

所有HTTP 2.0通信都会另俩个 连接上完成,你是什么连接可不可不可以 要能 承载任意数量的双向数据流。

比如,JavaScript和CSS代码,通过适当的script和style块可不可不可以 要能 直接放进 页面中。

7)首部压缩

HTTP管道可不可不可以 要能 让亲戚朋友 把FIFO队列从客户端(请求队列)迁移到服务器(响应队列)。

突然听说HTTP2.0,对此也仅仅是耳闻,那末具体研读过,这次正好另俩个 篇章,分别讲HTTP1.1和HTTP2.0。

持久HTTP多次请求需要严格满足先进先出(FIFO)的队列顺序:发送请求,等待英文响应完成,再发送客户端队列中的下另俩个 请求。

把HTTP消息分解为或多或少或多或少独立的帧很久,就可不可不可以 要能 通过优化哪几块帧的交错和传输顺序,进一步提升性能。

而在HTTP2.0中可不可不可以 要能 首部压缩,减少上端的开销提升性能。

HTTP 2.0连接的两端都知道想要 发送了哪几块首部,哪几块首部的值是哪几块,从而可不可不可以 要能 针对很久的数据只编码发送差异数据。

在连接包含你是什么属性的想要打开了持久化连接。下图展示了通过持久 TCP 连接取得 HTML 和 CSS 文件:

5)嵌入资源

    本文转自 咖啡机(K.F.J)   博客园博客,原文链接:http://www.cnblogs.com/strick/p/5658230.html,如需转载请自行联系原作者

想要 服务器不理睬优先值,想要 意味分析应用响应更慢:浏览器明明在等关键的CSS和JavaScript,服务器却在发送图片,从而造成渲染阻塞。

3)度量和控制协议开销

每个TCP连接结速英文英语 都会三次握手,要经历一次客户端与服务器间完整版的往返,而开启了持久化连接就能并不每次都会握手。

4)请求优先级

HTTP 2.0中的二进制分帧层突破了限制:客户端和服务器可不可不可以 要能 把HTTP消息分解为互不依赖的帧,想要 乱序发送,最后再在另一端把它们重新组合起来。

相应地,或多或少或多或少流可不可不可以 要能 并行地在同另俩个 TCP连接上交换消息。

而在HTTP2.0中可不可不可以 要能 多向请求和响应,消除了请求多个资源就要使用多个TCP连接的限制。

HTTP 2.0性能增强的核心,全在于新增的二进制分帧层,它定义了要怎样封装HTTP消息并在客户端与服务器之间传输。

简言之,HTTP 2.0把HTTP协议通信的基本单位缩小为另俩个 另俩个 的帧,哪几块帧对应着逻辑流中的消息。

5)每个来源另俩个 连接

HTTP 2.0通过让所有数据流共用同另俩个 连接,可不可不可以 要能 更有效地使用TCP连接。

接下来说的几块特点都会基于你是什么机制来实现的。

2)流、消息和帧

1)二进制分帧层

2)HTTP管道

两者还能好好对比一下,两者之间的巨大区别,以及HTTP2.0除理了哪几块实际间题。

为减少哪几块开销并提升性能,HTTP 2.0会压缩首部元数据。

那末 语录在第另俩个 请求完成后,能马上结速英文英语 除理第十个 请求。

4)连接与拼合

YSlow包含23条规则,第20条想要“Use Cookie-Free Domains for Components”,请求的很久将cookie去除。

服务器除了对最初请求的响应外,服务器还可不可不可以 要能 额外向客户端推送资源,而回会客户端明确地请求。

而图片甚至音频或PDF文件,都可不可不可以 要能 通过数据URI(data:[mediatype][;base64],data)的最好的辦法 嵌入到页面中。

很少改变的接收和传输首部、缓存指令、cookie等,所有哪几块未经压缩的HTTP元数据突然会给每个HTTP请求增加几千字节的协议开销

无论哪几块网络,想要管所用网络协议是哪几块版本,所有应用都应该致力于消除或减少并并不的网络延迟将需要传输的数据压缩至大概

HTTP 1.x中,可不可不可以 要能 考虑把多个资源捆绑打包到一块,通过一次网络请求获取。

在HTTP1.x中,首部元数据都会以纯文本形式发送的,通常会给每个请求增加30~30字节的负荷。

每个数据流以消息的形式发送,而消息由一或多个帧组成,哪几块帧可不可不可以 要能 乱序发送,想要 再根据每个帧首部的流标识符重新组装。

6)服务器推送

快的请求是回会请求,减少请求次数突然最好的性能优化手段。

HTTP 2.0不仅要能减少网络延迟,还能够提高吞吐量和降低运营成本!

3)多向请求与响应

而在HTTP2.0包含个服务器推送,与嵌入资源唯一的不同想要可不可不可以 要能 把你是什么过程从应用中甩掉来,放进 HTTP协议四种 来实现。

在HTTP 1.x中,想要 客户端想发送多个并行的请求以及改进性能,那末需要使用多个TCP连接。

也想要说即使客户端共同发送了另俩个 请求,想要 CSS资源先准备就绪,服务器也会先发送HTML响应,想要 再交付CSS

把资源嵌入文档可不可不可以 要能 减少请求的次数。

HTTP 1.0增加了请求和响应首部,以便双方要能交换有关请求和响应的元信息。

HTTP2.0想要为了做哪几块优化而出现的。

但HTTP 1.x不允许另俩个 连接上的多个响应数据交错到达(多路复用),因而另俩个 响应需要完整版返回后,下另俩个 响应才会结速英文英语 传输。

为了做到这或多或少,每个流都可不可不可以 要能 带另俩个 31比特的优先值。