美文网首页
HTTP2小纪

HTTP2小纪

作者: Tiny_z | 来源:发表于2018-09-17 14:39 被阅读7次

    多路复用

    传统的HTTP1.1为了提高并发性,得通过提高连接数,即同时多发几个请求,但因为一个连接只能发一个请求,所以需要多建立几个TCP连接。建立TCP连接需要线程开销,而chrome同一个域最多只能建立6个连接,所以就有了雪碧图、合并代码文件等减少请求数的解决方案

    但是在HTTP2中,对同一个域的服务器只建立一次TCP链接,同一个连接可以传输多个资源。多个数据流/信号通过一条信道进行传输


    1528940904076.png 1528940997451.png image

    流量方面没有太大的改进,但是HTTP2的优势在于它的多路复用等方面

    请求头压缩

    通过规定头部字段的静态表格和实际传输过程中动态创建的表格,减少多个相似请求里面大量冗余的HTTP头部字段

    image

    客户端发了2次请求,第一次有完整的http报文头部,第二次请求的时候只有一个path的字段不一样,但是这次报文头它只需要发送一个path的字段就好了,这样就大大减少了发送的数据量。

    这个的实现要求客户端和服务端同时维护一个报文头表

    Server Push

    解决传统HTTP传输中资源加载触发延迟的问题,浏览器在创建第一个流的时候,服务器就告诉浏览器哪些资源可以先加载了,浏览器提前进行加载而不用等到解析到的时候再加载

    兼容

    1528942563190.png

    IE11 只在windows10支持

    但如果浏览器不支持http2会怎么样呢? 其实也是能够正常打开的, 因为建立https连接的时候要先握手,浏览器或者客户端会发送一个Client Hello的包,这个包里面会说明它是否支持HTTP2,如下

    image

    nginx就能够根据握手信息决定是否使用http2,如果客户端不支持就使用http1.1

    相关文章

      网友评论

          本文标题:HTTP2小纪

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