对比
Brotli 与 gzip
Brotli 和 gzip 都是用于 HTTP 传输的无损压缩格式。Brotli 常用于 Web 内容压缩,gzip 则与现有工具保持广泛兼容。
应该选择哪种格式?
服务器和客户端协商 br 时,可尝试用 Brotli 压缩 Web 文本。旧工具或既有传输链路可考虑 gzip。检查 Accept-Encoding、Content-Encoding、缓存区分以及实际大小和速度。
适用于 Brotli
保存无损压缩数据流 · 为兼容的 HTTP 传输压缩内容
- 服务器和客户端均支持 Brotli 时预压缩 Web 文本
- 在支持 Brotli 的工具间交换压缩数据
适用于 GZIP
无损压缩文件或 tar 归档
- Unix 发布包、日志和文本文件
基本信息
| 项目 | Brotli | GZIP |
|---|---|---|
| 扩展名 | .br | .gz, .gzip |
| MIME 类型 | application/octet-stream | application/gzip |
| 常见用途 | 保存无损压缩数据流 · 为兼容的 HTTP 传输压缩内容 | 无损压缩文件或 tar 归档 |
| 打开方式 | 使用支持 Brotli 的解压工具或库。发送预压缩文件时,对兼容请求设置 Content-Encoding: br,并检查文件命名、媒体类型和缓存配置。 | 用支持 GZIP 的工具解压。对于 tar.gz,还需解开 tar 归档。 |
| 导出或转换 | 转换为 gzip 或 zstd 时先解压再重新压缩。用校验和或内容比较验证输出,并测量大小、编码时间和接收端支持。不要仅凭 .br 扩展名推断 HTTP 标头或内容。 | 转成 ZIP 或其他归档时,检查文件名、目录结构和解压后的内容。 |
按用途选择
服务器和客户端均支持 Brotli 时预压缩 Web 文本
保存无损压缩数据流 · 为兼容的 HTTP 传输压缩内容
Brotli在支持 Brotli 的工具间交换压缩数据
保存无损压缩数据流 · 为兼容的 HTTP 传输压缩内容
BrotliUnix 发布包、日志和文本文件
无损压缩文件或 tar 归档
GZIP关键点 1
Brotli 由 RFC 7932 描述,gzip 由 RFC 1952 描述;HTTP 将它们作为不同的内容编码协商。
进一步了解差异关键点 2
两种压缩流都不是多文件归档。仅凭 .br 或 .gz 扩展名无法判断实际使用的 HTTP 标头或编码。
进一步了解差异进一步了解差异
根据客户端、服务器设置和实测负载选择。测试代表性内容,并确保缓存能区分采用不同内容编码的响应。
- 两者均为无损压缩,但数据流格式不同,需要相应解码器。
- Brotli 可用作 HTTP Content-Encoding: br,也可通过预压缩 .br 文件提供。gzip 在现有工具和系统中仍广泛受支持。
- 大小和速度取决于内容、设置和实现,并非总有一方更优。重新压缩需要先解码再编码。
常见问题
Brotli 一定比 gzip 压得更小吗?
不一定。结果随内容和压缩设置而变化,应测量实际分发的页面或文件。