HTTP2详解

1、http2.0:改进传输性能

http2.0的主要目标是改进传输性能,实现低延迟和高吞吐量。从另一个方面看,http的高层协议语义并不会因为这次版本升级而受到影响。所有http头部、值,以及它们的使用场景都不会变。

现在的任何网站和应用,无需做任何修改都可以在http2.0上跑起来。不用为了利用http2.0的好处而修改标记。http服务器必须运行http2.0协议,但大部分用户都不会因此受到影响。

2、SPDY

SPDY是谷歌开发的一个实验性协议,于2009年年中发布,主要目标是通过解决http1.1中广为人知的一些性能限制,来减少网页的加载延迟。

SPDY协议设定的目标:

a、页面加载时间(page load time)降低50%

b、无需网站作者修改任何内容

c、把部署复杂性降至最低,无需变更网络基础设施。

d、与开源社区合作开发这个协议

e、收集真实性能数据,验证这个实验性协议是否有效

3、http2.0应满足的条件

a、相对于使用TCP的http1.1,用户在大多数情况下的感知延迟要有实质上、可度量的改进;

b、解决http中的“对首阻塞”问题;

c、并行操作无需与服务器建立多个连接,从而改进了TCP的利用率,特别是拥塞控制方面;

d、保持http1.1的语义,利用现有文档,包括(但不限于)http方法、状态码、URL,以及首部字段;

e、明确规定http2.0如何与http1.x互操作,特别是在中间介质上;

f、明确指出所有新的可扩展机制以及适当的扩展策略。

总之,http2.0致力于突破上一代标准众所周知的性能限制,即尽可能的兼容http1.1,改进http1.1协议的不足。但它也是对之前1.x标准的扩展,而非替代。之所以要增加一个大版本到2.0,主要是因为它改变了客户端与服务器之间交换数据的方式,http2.0增加了新的二进制分帧数据层。

4、http1.0和http1.1的缺点

(1)http1.0只允许在一个连接上建立当前未完成的请求

(2)http1.1管道只部分处理了请求并发和包头堵塞问题,客户端多简历TCP连接,减少延迟。

(3)报头字段经常重复冗长,数据包变大,容易造成初始TCP端口的堵塞,多建立几个TCP连接。

5、http2.x协议解决之道

(1)优化基础连接的语义映射,例如同一个连接上建立交错的请求和响应,使用高效率编码的报头字段

(2)允许请求的优先级,让更多重要的请求先完成

6、http2协议的特点

(1)http2中最基础的协议单位是帧,每个帧都有不同的类型和用途,例如,报头(headers)和数据(data)帧组成了基础的http请求和响应,帧包含的http报头字段是压缩的,http请求有可能是高度冗余的,因此压缩能显著减少请求和响应大小。

(2)请求多路复用:一个流上分配多个http请求响应交换,流在很大程度上是相互独立的,因此一个请求上的阻塞和终止不会影响其他请求的处理。

(3)流量控制和优先级确保正确使用复用流,流量控制有助于确保只传播接受需要的数据,优先级确保有限的资源能被重要的请求使用。

(4)添加了一种新的交互模式,即服务器能推送消息给客户端,服务器推送允许服务端预测客户端需要来发送。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值