msforest / notebook

好记性不如烂笔头,记录知识的点点滴滴。
https://github.com/msforest/notebook/wiki
0 stars 0 forks source link

http/2 入门 #34

Open msforest opened 5 years ago

msforest commented 5 years ago

what (http/2是什么)

http 自 1989 年问世以来,就一直霸占了网络通信协议的铁王座。虽然有缺陷在身,但一直针对自身缺陷, 不断地提高、优化,使自己变得更好。而http/2没有改变http原有的任何语义,仅仅优化底层连接方式。 http 经历了以下几个重要历程:

why (为什么会有http/2)

随着 http1.1 的知名度在逐渐扩大,web 应用程序的资源也在不断增加,浏览器加载资源的性能问题也就 暴露出来了,如 tcp 连接受限,请求头阻塞,请求头资源重复传输;然后又是 ssl 增加了一点难度。 因此,http2 于 2014 年诞生了,极乐降世,普度众生。

how (http/2是如何优化存在的缺陷)

了解了http发展历程,总结了存在这么几点缺陷:

http/2 在 http/1.x 的基础上优化了传输机制,保持了原有的核心功能,但提供了高效优化。 http/2 协议的主要目标是针对 http/1.1 中存在的问题提出了解决方法, 并且还增加了更友好的功能:

  1. Multiplexing - 单个 tcp 连接异步发送多个请求
  2. Header compression - 在每个请求中,不需要发送相同请求头
  3. Binary protocol - 使用二进制分帧传输数据,不再使用 http1.1 的文本格式
  4. Request prioritization - 使得有限的资源定向到最重要的Stream
  5. Server push - 服务器可以异步发送数据到客户端的缓存

how http2 works

issue

  1. 为什么二进制帧可以高效处理message?