HTTP 2.0新特性

标签: http2.0
22人阅读 评论(0) 收藏 举报
分类:

1、增加二进制分帧

HTTP协议从0.9版本开始不断增加增加新的功能特性,但长远来看都是向前兼容的(现在的版本支持以后的版本数据)。HTTP 2.0在应用层跟传送层之间增加了一个二进制分帧层,从而能够达到在不改动HTTP的语义,HTTP方法,状态码,URI以及首部字段的情况下,突破HTTP 1.1的性能限制,改进传输性能,实现低延迟和高吞吐量
这里写图片描述
在上图所示,在二进制分帧层上,HTTP 2.0会将所有传输的信息分割为更小的消息和帧,并对它们采用二进制格式的编码,其中HTTP 1.1的首部信息会被封装到Headers帧,而request body被封装到图中所示的DATA帧。相当于把部分数据塞进了二进制分帧层里,改进传输性能。

2、压缩头部

如下图所示: HTTP 2.0在客户端和服务端使用首部表来跟踪和存储之间发送的键-值对,对相同请求而言不需要再次发送请求和相应发送,通信期间几乎不会改变的通用键值,如user-Agent和content-Type值发送一次,相当于做了一层缓存。

  • 如果请求不包含首部,如:对同一资源的轮询请求,那首部开销为零字节
  • 如果首部发生变化,那只需发送变化的数据在Headers帧里面,新增或修改的首部帧会被追加到首部表

这里写图片描述

3、多路复用

一个入了门的前端开发在谈到性能优化的方法时都可以轻轻松松列举如下几点
- CSS雪碧图合并-减少请求
- 合并压缩CSS跟JS代码-减少请求
- CSS代码放在header头部里面,JS代码放到body结束之前,因为JS代码执行会阻塞
但HTTP 2.0的多路复用让我们回到最原始最自然的写码状态,先看下图
这里写图片描述
对HTTP 1.1而言,浏览器通常有并行连接的限制,即最多几个并行链接。而多路复用允许通过单一的HTTP 2.0连接发起多重的请求-相应消息
这意味着HTTP 2.0的通信都在一个连接上完成了,这个连接可以承载任意数量的双向数据流,直观来说,就是上面我们所做的优化已经不需要了。

4、请求优先级

所有资源可以并行交错发送, 那想要优先拿到CSS和JS而不是图片怎么办,在每个HTTP 2.0的流里面有个优先值,这个优先值确定着客户端跟服务器处理不同的流采取不同的优先级策略,高优先级优先发送,但这不是绝对的(绝对等待会导致首队阻塞问题)

5、服务器提示

HTTP 2.0新增加服务器提示,可以先于客户端检测到将要请求的资源,提前通知客户端,服务器不发送所有资源的实体,只发送资源的URL,客户端接到提示后会进行验证缓存,如果真需要这些资源,则正式发起请求(服务器主动更新静态资源)

转载:https://blog.csdn.net/sysuzhyupeng/article/details/56508111

查看评论

HTTP 2.0带来哪些新特性

增加二进制分帧HTTP协议从0.9版本开始不断增加增加新的功能特性,但长远来看都是向前兼容的(现在的版本支持以后的版本数据)。HTTP 2.0在应用层跟传送层之间增加了一个二进制分帧层,从而能够达到在...
  • sysuzhyupeng
  • sysuzhyupeng
  • 2017-02-22 22:07:20
  • 3662

【网络】HTTP2.0新特性

前段时间实习生面试的时候被问到HTTP2.0以及和HTTP1.1的区别,貌似网上对这一块的讲解很少,而且大多数就是空洞的理论堆砌,看也看不懂。不过花点时间慢慢找还是可以找到很不错的资料的。整理如下,希...
  • Sugar_Z_
  • Sugar_Z_
  • 2016-05-25 09:23:11
  • 4732

http2.0新特性

在HTTP2.0上,客户端和服务器可以把HTTP 消息分解为互不依赖的帧,然后乱序发送,最后再在另一端把它们重新组合起来。 HTTP 2.0 通过让所有数据流共用同一个连接,可以更有效地使用TCP 连...
  • github_37037281
  • github_37037281
  • 2017-03-31 22:29:51
  • 1287

Apache Hive2.0的新特性介绍

Hive 是一个基于 Hadoop 文件系统之上的数据仓库架构。它为数据仓库的管理提供了许多功能:数据 ETL (抽取、转换和加载)工具、数据存储管理和大型数据集的查询和分析能力。同时 Hive 还定...
  • jiangshouzhuang
  • jiangshouzhuang
  • 2016-09-19 21:23:55
  • 2141

Spring Boot 2.0 新特性和发展方向

以Java 8 为基准Spring Boot 2.0 要求Java 版本必须8以上, Java 6 和 7 不再支持。内嵌容器包结构调整为了支持reactive使用场景,内嵌的容器包结构被重构了的幅度...
  • yalishadaa
  • yalishadaa
  • 2018-02-28 15:17:57
  • 4678

Hive2.0新特性

转载自:http://www.36dsj.com/archives/60604 Apache Hive2.0的新特性介绍  雪姬 2016-09-07 9:24:15 Hadoop 评论(...
  • weinierzui
  • weinierzui
  • 2017-03-31 19:12:41
  • 1200

http2.0的时代来了

KSKnowledge Sharing知识分享    现在是资源共享的时代,同样也是知识分享的时代,如果你觉得本文能学到知识,请把知识与别人分享!开篇HTTP发展的心路历程上图:连接无法复用上图:设置...
  • g6U8W7p06dCO99fQ3
  • g6U8W7p06dCO99fQ3
  • 2017-12-26 00:00:00
  • 652

C# 2.0 新特性

分部类型、泛型、可空值类型、轻量级事务管理器和角色提供程序。
  • ilovewebservice
  • ilovewebservice
  • 2011-03-29 11:23:00
  • 1299

jQuery 1.8,1.9和2.0分别带来的新特性

[cuixiping注1]:转载的这篇博文原文是在jQuery1.8发布之前写的,所以有些不够完整和具体,要更多了解,推荐看官方的jQuery 1.8 release notes jQuer...
  • cuixiping
  • cuixiping
  • 2012-08-29 10:11:37
  • 11409

jquery2.0的新特性

jQuery 2.0如期发布,该版本不再支持IE 6/7/8浏览器,因此变的更轻更快,但仍然可以继续运行在JavaScript环境中,在兼容这些老版本浏览器时,由于自身原因,常会产生一些错误。但别担心...
  • caihongshijie6
  • caihongshijie6
  • 2013-04-19 21:48:15
  • 4625
    个人资料
    持之以恒
    等级:
    访问量: 2万+
    积分: 879
    排名: 5万+
    个人博客