HTTP/2 及 HTTP/3
HTTP/2
- HTTP/2 相比于 HTTP/1,可以说是大幅度提高了网页的性能。
- 在 HTTP/1 中
- 因为浏览器限制了同一个域名下的请求数量(Chrome 下一般是限制六个连接),当页面中需要请求很多资源的时候,队头阻塞(Head of line blocking)会导致在达到最大请求数量时,剩余的资源需要等待其他资源请求完成后才能发起请求。
- 通过文本的方式传输数据。
- 在 HTTP/2 中
- 引入了多路复用的技术,这个技术可以只通过一个 TCP 连接就可以传输所有的请求数据。多路复用很好的解决了浏览器限制同一个域名下的请求数量的问题,同时也接更容易实现全速传输,毕竟新开一个 TCP 连接都需要慢慢提升传输速度。
- 引入了新的编码机制,所有传输的数据都会被分割,并采用二进制格式编码。
- 技术
- 多路复用
- 帧(frame)和流(stream):帧代表着最小的数据单位,每个帧会标识出该帧属于哪个流,流也就是多个帧组成的数据流。
- 多路复用,就是在一个 TCP 连接中可以存在多条流。换句话说,也就是可以发送多个请求,对端可以通过帧中的标识知道属于哪个请求。
- Head
- 多路复用