http2协议的草案已经出来了,阅读了一下网上的中文版,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帧发送的请求来实现推送,然后服务端可以在一个单独的流里面发送响应给这个合成的请求。