HTTP2.0
2022 httpHTTP2.0 新增的特性主要有二进制分帧,多路复用,首部压缩,服务端推送,请求优先级等。
二进制分帧
HTTP/2 性能增强的核心。HTTP/2 在应用层(HTTP/2)和传输层(TCP or UDP)之间增加一个二进制分帧层,将所有传输的信息分割成更小的消息和帧,并对它们采用二进制格式的编码。
多路复用
在 HTTP/1.1 中,浏览器客户端在同一时间,针对同一域名下的请求有一定数量的限制。超过限制数目的请求会被阻塞。
有了新的分帧机制后,HTTP/2 不再依赖多个 TCP 连接去实现多流并行了。可以在一个连接中发起多重请求,响应信息。
首部压缩
在 HTTP/1.1 中不支持 HTTP 首部压缩,HTTP/1.1 中则可以使用 SPDY 压缩。而 HTTP/2 则使用了 HPACK 算法,专门为首部压缩而设计的。
服务端推送
服务端根据客户端的请求,提前返回多个响应,推送额外的资源给客户端。
请求优先级
把 HTTP 消息分解为很多独立的帧之后,每个流都可以带有一个 31 比特的优先值,有了这个优先值,客户端和服务器就可以在处理不同的流时采取不同的策略,以最优的方式发送流、消息和帧。
HTTP1.1 与 HTTP1.0
缓存处理
HTTP1.0 主要使用 header If-Modified-Since
和 Expires
来做缓存过期判断
HTTP1.1 则引入更多的缓存控制策略:
- Entity tag: 实体标签
- If-Unmodifed-Since: 比较资源最后的更新时间是否不一致
- If-Match: 比较 ETag 标签是否一致
- If-None-Match: 比较 ETag 标签是否不一致
断点续传
HTTP1.1 默认支持断点续传
长连接
HTTP1.1 默认支持长连接。Connection: keep-alive
参考链接
- 《Web 性能权威指南》
- 知乎:HTTP/2 相比 1.0 有哪些重大改进?