http2.0协议的特点

HTTP2.0协议基于http1.1进行了重大改进,采用全二进制协议,实现多工技术,允许多个请求和响应同时在单个TCP连接中交错发送,避免队头堵塞。此外,引入数据流概念,支持数据流优先级设定和取消,优化头信息压缩以减少冗余,并首次支持服务器推送技术,提高响应速度和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http2.0协议再http1.1 http1.0及以前的版本基础上,进行相应的修改。主要的特性有:
1。 二进制协议
http1.0之前都是文本协议,http1.1版本的头信息是文本,数据体可以是文本或者二进制数据。
http2.0协议整个都是二进制数据,协议头和数据体都是二进制协议。
协议头和数据体,都被称为“帧”(frame):头信息帧和数据帧。

2. 多工(Multiplexing)
HTTP/2 复用TCP连接,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应,这样就避免了"队头堵塞"。

3. 数据流
HTTP/2的数据包不是顺序发送的,同一个连接,可以连续发不同的请求包,每个请求包都有唯一的ID。另外还规定,客户端发出的数据流,ID一律为奇数,服务器发出的,ID为偶数。
数据流发送一半的时候,可以取消,只需要给服务器发送信号(RST_STREAM帧)。而HTTP1.1版本只能关闭TCP连接,而HTTP2.0不需要关闭TCP连接。
客户端可以指定数据流优先级,优先级越高,越快获得响应。
4. 头信息压缩
HTTP 协议不带有状态,每次请求都必须附上所有信息。所以,请求的很多字段都是重复的,比如Cookie和User Agent,一模一样的内容,每次请求都必须附带,这会浪费很多带宽,也影响速度。
HTTP/2 对这一点做了优化,引入了头信息压缩机制(header compression)。一方面,头信息使用gzip或compress压缩后再发送;另一方面,客户端和服务器同时维护一张头信息表,所有字段都会存入这个表,生成一个索引号,以后就不发送同样字段了,只发送索引号,这样就提高速度了。

5. 服务器推送
HTTP/2 允许服务器未经请求,主动向客户端发送资源,这叫做服务器推送(server push)。
常见场景是客户端请求一个网页,这个网页里面包含很多静态资源。正常情况下,客户端必须收到网页后,解析HTML源码,发现有静态资源,再发出静态资源请求。其实,服务器可以预期到客户端请求网页后,很可能会再请求静态资源,所以就主动把这些静态资源随着网页一起发给客户端了。

参考连接:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值