美文网首页
HTTP/2 多路复用技术分享

HTTP/2 多路复用技术分享

作者: tianeyi | 来源:发表于2018-12-26 11:08 被阅读0次

什么是 HTTP/2

HTTP/2 就是超文本传输协议的第二个主要版本,是自1999年 HTTP 1.1 之后发布的首个更新,主要基于 SPDY 协议(是Google开发的基于TCP的应用层协议,用以最小化网络延迟,提升网络速度,优化用户的网络使用体验)。

和 HTTP1.1 比起来有什么优势

1. HTTP/2采用二进制格式而非文本格式

2. HTTP/2是完全多路复用的,而非有序并阻塞的——只需一个连接即可实现并行

3. 使用报头压缩,HTTP/2降低了开销

4. HTTP/2让服务器可以将响应主动“推送”到客户端缓存中

其中的 多路复用对前端优化性能有很大的帮助

什么是多路复用

在 HTTP 1.1 中,发起一个请求是这样的:

浏览器请求 url -> 解析域名 -> 建立 HTTP 连接 -> 服务器处理文件 -> 返回数据 -> 浏览器解析、渲染文件 

这个流程最大的问题是,每次请求都需要建立一次 HTTP 连接,也就是我们常说的3次握手4次挥手,这个过程在一次请求过程中占用了相当长的时间,而且逻辑上是非必需的,因为不间断的请求数据,第一次建立连接是正常的,以后就占用这个通道,下载其他文件,这样效率多高啊!

为了解决这个问题, HTTP 1.1 中提供了 Keep-Alive,允许我们建立一次 HTTP 连接,来返回多次请求数据。

但是这里有两个问题:

HTTP 1.1 基于串行文件传输数据,因此这些请求必须是有序的,所以实际上我们只是节省了建立连接的时间,而获取数据的时间并没有减少

最大并发数问题,假设我们在 Apache 中设置了最大并发数 300,而因为浏览器本身的限制,最大请求数为 6,那么服务器能承载的最高并发数是 50

而 HTTP/2 引入二进制数据帧和流的概念,其中帧对数据进行顺序标识,这样浏览器收到数据之后,就可以按照序列对数据进行合并,而不会出现合并后数据错乱的情况。同样是因为有了序列,服务器就可以并行的传输数据。

HTTP/2 对同一域名下所有请求都是基于流,也就是说同一域名不管访问多少文件,也只建立一路连接。同样Apache的最大连接数为300,因为有了这个新特性,最大的并发就可以提升到300,比原来提升了6倍。

如何应用 HTTP/2

下面是我用 nodejs + express 实现的一个简单例子 ( HTTP/2 必须采用 SSL 安全连接)

打开 chrome 的调试器,可以看到 

这是基于  HTTP 1.1 

这是基于  HTTP 1.1 

这时基于 HTTP/2

现在 nginx、tomcat 都有支持 http2 的配置  

哪些浏览器支持  HTTP/2 

相关文章

  • HTTP/2 多路复用技术分享

    什么是HTTP/2 HTTP/2 就是超文本传输协议的第二个主要版本,是自1999年 HTTP 1.1 之后发布的...

  • 《现在前端技术技术解析》笔记二:前端与协议

    1.http2 SPDY是一种基于HTTP的兼容协议, SPDY传输支持多路复用和服务器推送技术,压缩了HTTP头...

  • Http2.0改进

    多路复用 HTTP2.0使用了多路复用的技术,做到同一个连接并发处理多个请求,而且并发请求的数量比HTTP1.1大...

  • Http1.1和Http2.0的区别

    1.多路复用 Http2.0使用了多路复用的技术,做到同一个连接并发处理多个请求,而且并发的请求数量比HTTP1....

  • ★ HTTP 协议

    简单讲解一下 http2 的多路复用 HTTP HyperText Transfer Protocol 超文本传输...

  • Internet-Http协议格式

    1.HTTP连接(短连接/长连接/多路复用) 2.HTTP请求 3.HTTP响应 简书: http://www.j...

  • OkHttp - 源码解析

    特点:支持HTTP2/SPDY黑科技(Http2 优化了头部压缩,多路复用多个http请求共用一个TCP连接)so...

  • 如何理解I/O多路复用技术

    如何理解I/O多路复用技术(multiplexing)? 参考链接1 参考链接2

  • HTTP1.1/HTTPS/HTTP2.0

    HTTP2.0 新特性 新的二进制协议 多路复用 header 压缩 服务端推送 参考 HTTP/2 简介 | ...

  • grpc与Protobuf&go-micro基础原理

    http2支持多路复用,http1不支持。 Broker:异步通讯Codec:消息编码,比如基于protobuf和...

网友评论

      本文标题:HTTP/2 多路复用技术分享

      本文链接:https://www.haomeiwen.com/subject/fxthlqtx.html