Http2, HTTP1.1 知识点收集

参考地址:html

  1. https://blog.wangriyu.wang/2018/05-HTTP2.html
  2. https://www.jianshu.com/p/e57ca4fec26f

1, HTTP/1.1 存在的问题算法

  •     TCP 链接数限制
  • 线头阻塞 (Head Of Line Blocking) 问题
  • Header 内容多,并且每次请求 Header 不会变化太多,没有相应的压缩传输优化方案
  • 明文传输不安全。
  • 为了尽量减小请求数,须要作合并文件、雪碧图、资源内联等优化工做

2,Http2.0 特色:浏览器

  •     二进制分帧层 (Binary Framing Layer)(response 头字段均小写)
  •  多路复用 (MultiPlexing)  在一个 TCP 链接上,每帧的 stream identifier 的标明这一帧属于哪一个流,而后在对方接收时,根据 stream identifier 拼接每一个流的全部帧组成一整块数据。 流的概念实现了单链接上多请求 - 响应并行,解决了线头阻塞的问题,减小了 TCP 链接数量和 TCP 链接慢启动形成的问题。
    • http2 对于同一域名只须要建立一个链接
  • 服务端推送 (Server Push) 浏览器发送一个请求,服务器主动向浏览器推送与这个请求相关的资源,这样浏览器就不用发起后续请求。【省略后后续的get 时间
  • Header 压缩 (HPACK)  使用 HPACK 算法来压缩首部内容
  •  应用层的重置链接 

    HTTP/1 来讲,是经过设置 tcp segment 里的 reset flag 来通知对端关闭链接的。这种方式会直接断开链接,下次再发请求就必须从新创建链接。HTTP/2 引入 RST_STREAM 类型的 frame,能够在不断开链接的前提下取消某个 request 的 stream。缓存

  •  请求(流的)优先级设置安全

  •  

     流量控制 服务器

 

3, 流的状态:idle  reserved(local & remote ) open half-closed(local & remote ) closed;   以上也是流的生命周期。 其中reserved 都只能发送对应生命周期内的某些帧数据。tcp

4,优化点:ide

  •     开启压缩 配置 gzip 等可使传输内容更小,传输速度更快
  •  使用缓存 
  •  CDN 加速 
  •  减小 DNS 查询
  •  减小重定向
相关文章
相关标签/搜索