博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTTP/2
阅读量:7260 次
发布时间:2019-06-29

本文共 840 字,大约阅读时间需要 2 分钟。

简介

HTTP/1 的升级版

1999 : HTTP/1 发布

2014年:HTTP/2递交审批

2015年::HTTP/2 批准

特点/优势

1. 二进制分帧

概念

  1. 帧: 数据通信的最小单位。
  2. HTTP消息: 包括http请求+响应 = n个帧组成
  3. 流:虚拟通道, 承载消息(双向),每个消息都有一个唯一标识ID

对比传输方式

HTTP/1 : 请求和响应报文 :起始行+首部+实体正文(可选)组成,通过文本换行符分隔

HTTP/2 :请求和响应分割为更小的帧,采用二进制编码,将数据以二进制格式传输

统一域名下的通信都是在单个连接下进行,可以接受无限多个消息(n个帧), 帧是乱序发送的,拿到请求后,根据消息的ID进行重组

2. 多路复用

多流并行问题

  1. HTTP 1.x 中,如果想并发多个请求,必须使用多个 TCP 链接,浏览器为了控制资源,还会对单个域名有 6-8个的TCP链接请求限制
  2. HTTP/2 只需要使用一个TCP

原因如下:

  1. 对于同一个域名下的通信都是在单个连接(TCP)进行的
  2. 它可以承载任意的双向数据流
  3. 消息进行通信,消息由多个帧组成,帧之间乱序发送,之后重组

优势:

  1. 单个tcp,减少消耗
  2. 各个帧之间传送互不干扰 3, 每个消息会携带优先级标识,可以调优

3. 服务器推送服务

传统的模式:浏览器解析到相应位置时,再去发送请求再返回。

使用HTTP/2:服务端会发送页面html,就会把js和css一起发送过去 ,这样就不用等到浏览器解析的时候再去发请求处理

4. 头部压缩

传统的HTTP 通信: 头部会携带许多用于描述这次通信的的资源、浏览器属性、cookie。

使用HTTP/2:

  1. HTTP/2在客户端和服务器端使用“首部表”来跟踪和存储之前发送的键-值对,对于相同的数据,不再通过每次请求和响应发送;
  2. 首部表在HTTP/2的连接存续期内始终存在,由客户端和服务器共同渐进地更新;
  3. 每个新的首部键-值对要么被追加到当前表的末尾,要么替换表中之前的值。

转载地址:http://apkdm.baihongyu.com/

你可能感兴趣的文章
ORCFILE,ParquetFile,CubeFile使用场景区别
查看>>
Ubuntu下Git服务端搭建
查看>>
DB2 格式化输出 Date
查看>>
ORACLE触发器具体解释
查看>>
MongoDB numa系列问题一:[initandlisten] connection refused because too many open connections:
查看>>
OAF TABLE中添加序号列
查看>>
Linux软件源
查看>>
中科院NLPIR中文分词java版
查看>>
基于jQuery会员中心安全修改表单代码
查看>>
10个利用Eclipse调试Java的常见技巧
查看>>
强制修改mysql 中root的密码
查看>>
如果在安装32位oracle 客户端组件时的情况下以64位模式运行,将出现问题
查看>>
Android消息机制——时钟显示和异步处理工具类(AsyncTask)
查看>>
第2章 数字之魅——求二进制中1的个数
查看>>
c++ 哪些自定义的数据类型
查看>>
科研经验:一篇学术文章要写多久
查看>>
js:进一步关闭(范围:下一个)
查看>>
实现mysql按月统计的教程
查看>>
软件测试重点
查看>>
PE文件结构(五岁以下儿童)基地搬迁
查看>>