HTTP2.0 简介
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP2.0 简介相关的知识,希望对你有一定的参考价值。
参考技术A HTTP/2 是 HTTP 协议的一个升级,它的主要目的是为了解决 HTTP/1.x 中不好实现功能,比如并发访问、TCP连接复用等HTTP/2 的实现的主要功能包括通过支持完整的请求与响应复用来减少延迟,通过有效压缩 HTTP 标头字段将协议开销降至最低,增加对请求优先级和服务器推送的支持
您很可能注意不到任何区别:所有新的低级分帧由客户端和服务器为您执行
理解以下的概念有助于学习 HTTP/2
数据流:已建立连接内的双向字节流,可以承载一条或多条消息
消息:与逻辑请求或响应消息对应的完整的一系列帧
帧:HTTP/2通信的最小单位,包含帧头
一个 TCP 连接上承载任意数量的数据流,每个数据流承载双向消息,每条消息包含一个或多个帧,帧是最小单位承载特定的数据
在应用层新增一个二进制分帧层,用来处理所有 http/2 新增的特性,对于通过 http/2 传输的信息细分为消息和帧,使用二进制格式编码。
请求与响应复用、服务器推送、标头压缩等。
HTTP/2 的消息都是在一个 TCP 连接内完成,通过把消息分成一些列的帧,把这些帧交错传输从而达到复用的目的,每个帧都包含数据流标识符,接收端根据其在重新组装成一条消息。
数据流优先级,因为在一个连接中有多个帧交错传输,为了保证传输优先级高的资源,通过给数据流设置权重和依赖关系来实现传输的优先级。
每个来源一个连接,因为请求与响应的复用,所以通过 HTTP/2 的数据流都可以在一个 TCP 连接传输,所以只需要每个来源一个连接即可,HTTP/2 的链接都是永久的。
如图所示可以通过 Network 工具查看请求的 Connection ID 会发现同一个源下面使用 HTTP/2 的请求都是同一个 ID
服务器可以对一个客户端请求发送多个响应。有别于 HTTP/1.x 定义的一个请求一个响应,HTTP/2 下服务器可以主动推送内容给客户端,这主要考虑场景是现在的一个网络应用会包含多种资源,可以通过服务器提前推送这些资源,从而减少客户端再次发起资源请求的延迟时间。
所有服务器推送数据流都是通过 PUSH_PROMISE 帧发起,客户端接受到后可以拒绝、缓存、复用
压缩请求与响应标头的元数据减少传输的字节大小,通过 HPACK 压缩格式,有别于 HTTP/1.x 中每次请求都带上所有的请求头信息,HTTP/2 通过对传输的标头字段编码后传输索引值,然后通过服务端和客户端维护的索引列表来解码重构标头键值对。
对于如何查看一个请求是否开启 HTTP/2,可以通过查看请求响应头,":method" 等包含以冒号开头的标头都可以认为是 HTTP/2
简单介绍了 HTTP/2 的一些概念以及一些新特性,总结下来 HTTP/2 主要特性,请求与响应复用、标头压缩、服务端推送。
了解到了一些特有的关键词,数据流、消息、帧、二进制分帧层,每个来源一个连接,霍夫曼编码
以上是关于HTTP2.0 简介的主要内容,如果未能解决你的问题,请参考以下文章