作家
登录

HTTP2总结及简单实践总结

作者: 来源: 2017-09-22 12:07:21 阅读 我要评论

HTTP2中,因为新的二进制帧的应用,使得可以轻松复竽暌姑单个TCP连接。客户端和办事器可以将 HTTP 消息分化为互不依附的帧,然后交错发送,最后再在另一端把它们从新组装起来。

经由过程wireshark抓包可以看到http2的构造

照样 Google Developers的图:

HTTP2总结及简单实践

可以看到我们可以并行交错的发送多个响应和请求,并且应用同一个TCP连接,没有先后次序,每个帧中携带有若何组装的信息,客户端会等某项工作所须要的所有的资本都就绪之后再履行。

数据流优先级(Stream prioritization)

因为可以进行单连接复竽暌姑,办事器和客户端的帧都是交错发送,对于发送给办事器的帧,为懂得决哪些该先处理,哪些该后处理,是以惹人了数据流的优先级,办事器根据优先级来分派资本。例如优先级高的获得更多的CPU和带宽资本。那么竽暌古先级是若何标示的呢?还记得前面的帧类型中有一个Type为PRIORITY,这种类型的帧就是为了告诉办事器这个stream的优先级,此外HEADERS帧中也包含了优先级信息。

HTTP/2经由过程父依附和权重来标示优先级,每一个stream会标示一个父stream id,没有标示的默认为虚拟的root stream,如许按照这种依附关系构建一个依附树,树上层的stream权重较高,同一层的stream会有一个weight来区分资本分派比。。

HTTP2总结及简单实践

上图是依附树的一些示例,大年夜左到右,共四棵树。

  • 第一个两个stream A 和 B,没有标明父stream,默认依附虚拟的root节点,A、B处于同一层,优先级雷同,根据权重分派资本,A分到 12/(12+4)=3/4 资本,B分到 1/4 资本。
  • 第二个D和C有层级构造,C的父级是D,那么办事器拿完全资本竽暌古先处理D,然后再处理C。
  • 第三个,办事器先处理D,再处理C,然后处理A和B,A分到 3/4 资本,B分到 1/4 资本。
  • 第四个,先处理D,再讲资本对半分处理E和C,之后再按照权重处理A和B
  1. public class Http2Example { 
  2.     final static OkHttpClient client = new OkHttpClient.Builder().build(); 
  3.     public static void main(String[] args) { 
  4.         Request request = new Request.Builder() 
  5.                 .url("https://blog.fliaping.com"
  6.                 .build(); 
  7.         try { 
  8.             Response response = client.newCall(request).execute(); 
  9.             System.out.println(JSON.toJSONString(response.protocol())); 
  10.             System.out.println(response.headers().toString()); 
  11.             System.out.println(response.body().string()); 
  12.         } catch (IOException e) { 
  13.             e.printStackTrace(); 
  14.         } 
  15.     } 

须要留意的一点是,流优先级并不是强迫束缚,当优先级高的流壅塞时,并不克不及不让办事器处理优先级低的流

HTTP/2 新特点

  • 二进制分帧(Binary framing layer)
  • 多路复竽暌姑 (Multiplexing)
  • 单连续接(One connection per origin)
  • 数据流优先级(Stream prioritization)
  • 首部紧缩(Header Compression)
  • 流控 (Flow control)
  • 办事端推送(Server Push)

首部紧缩 (Header Compression)

因为当前网站内容越来越复杂,单个页面的请求数根本都是几十个甚至上百,每个请求都要带上客户端或者用户的标识,例如:UA,cookie等头部数据,请求数量多了今后,传输http头部消费的流量也异常可不雅,并且头部数据中大年夜部分都是雷同的,这就是赤裸裸的浪费呀。于是产生了头部紧缩技巧来节俭流量。


  推荐阅读

  大数据影响经济生活 是AI的基石

【沙龙】51CTO诚邀您9月23号和多位技巧大年夜咖一路聊智能CDN的优化之路,抓紧时光哦! 谈到AI就必须谈大年夜数据,谈到大年夜数据就得谈云计算。在今天ABC(人工智能AI、大年夜数据Bigdada>>>详细阅读


本文标题:HTTP2总结及简单实践总结

地址:http://www.17bianji.com/lsqh/37583.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)