HTTP协议更新至2.0版 基本协议单位为帧

Posted by zhang on

2015年2月18日,IETF HTTP 工作小组主席Mark Nottingham在其博客上宣布:IESG已经正式批准了HTTP/2及HPACK标准,并将其送至RFC编委会,待分配RFC编码及必要的修订后,将正式发布。HTTP/2包括两个标准,分别是HTTP协议2.0版以及名为HPACK的HTTP/2文件头压缩标准。

wKiom1QkweagsdJCAACjruSJG6k719

阅读了一下网上的中文版,发现http2尽可能的兼容http1.1。改进了http1.1协议的不足。

http1.0和http1.1的缺点:

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

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

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

http2x协议解决之道:

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

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

http2协议的特点:

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

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

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

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

数据给客户端,交换网络使用以阻塞潜在的延迟增长。服务器通过复用一个以PUSH_PROMISE帧发送的请求来实现推送,然后服务端可以在一个单独的流里面发送响应给这个合成的请求。

#About Me

张小璋,野蛮生长成世界500强企业供应链金融产品经理的法语毕业生。微信公众号:张小璋碎碎念(ID: SylvainZhang )。
一直在互联网金融公司从事产品经理工作并负责互联网金融产品线,深耕互联网金融和区块链领域。「PMCAFF」、「人人都是产品经理」专栏作家、「PmTalk」签约作家。