http1.0 http1.1 http2.0区别

长链接

  • http1.0
  • 每对Request/Response都使用一个新的连接。
  • 不支持断点续传,每次都从RANGE:0(http1.1新增加字段)开始
    其中HTTP1.0需要在request中增加”Connection: keep-alive“ header才能够支持,而HTTP1.1默认支持
  • http1.1
  • 默认使用长链接,在同一个tcp链接可以传送多个http请求和响应,同时也支持更多的请求头和响应头b.允许同时在一条条件上发送多个请求,但是服务端必须按照接收请求的先后顺序发送应答包c.host请求头字段,明确标识服务器上的web站点,http1.1还提供了身份认证、状态管理和cache缓存机制相关的头

带宽优化

  • HTTP/1.1中在请求消息中引入了range头域,在响应消息中Content-Range头域声明了返回的这部分对象的偏移值和长度。如果服务器相应地返回了对象所请求范围的内容,则响应码为206(Partial Content),它可以防止Cache将响应误以为是完整的一个对象。
  • HTTP/1.1加入了一个新的状态码100(Continue),客户端事先发送一个只带头域的请求,拒绝发送401; 接受则发送100,客户端就可以继续发送带实体的完整请求了

消息传递

  • HTTP/1.1中引入了Chunkedtransfer-coding来解决缓存完整消息带来的性能问题,发送方将消息分割成若干个任意大小的数据块,每个数据块在发送时都会附上块的长度,最后用一个零长度的块作为消息结束的标志。这种方法允许发送方只缓冲消息的一个片段,避免缓冲整个消息带来的过载
  • 在HTTP/1.0中,有一个Content-MD5的头域,要计算这个头域需要发送方缓冲完整个消息后才能进行。而HTTP/1.1中,采用chunked分块传递的消息在最后一个块(零长度)结束之后会再传递一个拖尾(trailer),它包含一个或多个头域,这些头域是发送方在传递完所有块之后再计算出值的。发送方会在消息中包含一个Trailer头域告诉接收方这个拖尾的存在。

响应码

  • 在HTTP/1.1中新增了24个状态响应码,如409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除。

多路复用

HTTP/1.1 协议中 「浏览器客户端在同一时间,针对同一域名下的请求有一定数量限制,超过限制数目的请求会被阻塞;多路复用允许同时通过单一的 HTTP/2 连接发起多重的请求-响应消息。

头部压缩

http1.1不支持头部压缩, http2.0 支持头部压缩的hpack算法
http2.0使用二进制数据流(实现方便且健壮)
http2.0没有改变http1.1的语义,而是在http1.1的header和body重新封装了一层

流量控制

http2.0支持流量控制,和tcp的sliding window类似。http2.0 类似的使用receive window 的做法

更安全的ssl

使用tls的alpn来做协议升级,且通过黑名单机制禁用几百种不再安全的加密算法

参考
https://www.zhihu.com/question/34074946
http://blog.csdn.net/hguisu/article/details/8608888
http://blog.csdn.net/forgotaboutgirl/article/details/6936982/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、HTTP的历史 早在HTTP建立之初,主要就是为了将超文本标记语言(HTML)文档从Web服务器传送到客户端的...
    一只好奇的茂阅读 14,377评论 11 110
  • 转载于:http://mrpeak.cn/blog/http2/ HTTP 2.0的那些事 在我们所处的互联网世界...
    柒黍阅读 2,390评论 0 8
  • API定义规范 本规范设计基于如下使用场景: 请求频率不是非常高:如果产品的使用周期内请求频率非常高,建议使用双通...
    有涯逐无涯阅读 2,788评论 0 6
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,242评论 19 139
  • 作为一个经常和web打交道的程序员,了解这些协议是必须的,本文就向大家介绍一下这些协议的区别和基本概念,文中可能不...
    单纯的土豆阅读 1,252评论 0 19