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帧发送的请求来实现推送,然后服务端可以在一个单独的流里面发送响应给这个合成的请求。
http2还有很多深奥的原理和实现,有兴趣探索的朋友,访问http://yuedu.baidu.com/ebook/478d1a62376baf1ffc4fad99.html?f=read
相关推荐
HTTP2协议详解
HTTP2协议解析及抓包分析讲解
一个C++高性能http服务端和客户端库。 支持http2协议,http1长连接
http2 协议的中文版讲解.zip,http2讲解中文版
Http-2 - HTTP/2协议的纯Ruby实现
http2-qing是一个基于netty的http2协议库 产品特点 以物联网为基础发展,业绩良好 封装http2协议,并提供简单易用的API 基本上所有异步方法 支持管理服务器和服务器推送的连接 提供客户端断开连接和重新连接并支持...
介绍了HTTP,讲解了浏览器访问多图网页的过程,比较了HTTP 1.1版本与1.0版本的不同之处,并介绍了请求-响应回路中的消息及消息头。
HTTP协议测试二 * Http.java
http2:Crystal语言的HTTP2协议实现
能同时解决以上两个问题,就能确保真实有效的通信双方采取有效的算法与密钥进行通信,便完成了协议安全的初衷。在介绍HTTPS协议如何解决两大安全问题前,我们首先了解几个概念。数字证书数字证书是互联网通信中标识...
Java APNS推送消息 HTTP/2协议, 基于JDK 11及以上
wso2 esb协议转换示例,包含基本的配置,博客参考http://blog.csdn.net/szh1124/article/details/42126075
(2) 由于网页文档的传输需要可靠性的保证,所以HTTP协议使用TCP协议,TCP协议是一个面向连接的协议,在通信时需要建立连接,通信结束要释放连接,TCP建立连接时需要三次握手,提供可靠的数据传输,HTTP协议默认...
精心整理的的http协议资料,比较简要,明确,完整
第2章 T/TCP协议 第3章 T/TCP使用举例 …… 第二部分 TCP的其他应用 第13章 HTTP;超文本传送协议 第14章 在HTTP服务器上找到的分组 第15章 NNTP:网络新闻传送协议 第三部分 Unix 域协议 第16章 Unix域协议:概述 ...
能够处理http协议:(1)解析 (2)构造http格式
pushy-clj:使用Clojure使用新的HTTP2协议发送APNs推送通知
HTTP-2 纯Ruby,与框架和传输无关,HTTP / 2协议和HPACK标头压缩的实现,并支持: 解析和编码和连接和和连接和流管理还有更多...请参阅协议规格: 入门$ > gem install http-2 此实现不假设数据如何传递:它可以是...
forest.cr::sailboat:可用-Crystal HTTP2协议客户端和服务器