Brotli 流 (.brotli)
IETF 标准Brotli 是由 Google 开发的开源无损数据压缩算法,专门针对网页排版(WOFF2)和 HTTP 内容编码(Content-Encoding: br)进行了优化,以加速互联网页面传输。
将 BROTLI 转换为 GZIP
免费的浏览器端 BROTLI 转 GZIP 转换器。在您的设备上即时转换文件。
检查与元数据
操作系统和文件分析器通过检查开头的二进制字节序列来识别 Brotli 文件:
字节级文件头签名 (Magic Bytes)
操作系统和文件分析器通过检查开头的二进制字节序列来识别 Brotli 文件:
十六进制签名 (偏移量 0):
CE B2 CF 81ASCII 表示形式: βÏ\x81
标准化: IETF RFC 7932
技术规格
| 容器架构 | Raw bitstream framing with optional window size declaration and meta-blocks |
| 压缩方式 | LZ77 sliding dictionary (up to 16 MB), second-order context modeling, and static 120 KB dictionary |
| 字节序 | Little-Endian bit-packing |
| 色彩空间 | N/A (Data Compression Stream) |
| 通道与结构 | General-purpose byte stream compression |
| 最大尺寸 | Arbitrary byte stream length (supports unbounded streaming) |
| 透明度 | Lossless byte-for-byte exact roundtrip data preservation |
| 流式传输与渐进式加载 | Meta-block chunking allows continuous HTTP chunked transfer streaming |
技术对比矩阵:Brotli 对比同类产品
| 技术属性 | Brotli (当前) | GZ | ZSTD | DEFLATE |
|---|---|---|---|---|
| 内置静态字典 | 包含 120 KB 网页字典 | 无(仅动态) | 用户可训练字典 | 无(仅动态) |
| 网页压缩(对比 Gzip) | 比 Gzip 小 15% - 25% | 基准标准(Gzip) | 比 Gzip 小 10% - 20% | 基准 Deflate |
| HTTP 内容编码 | 'Content-Encoding: br' | 'Content-Encoding: gzip' | 'Content-Encoding: zstd' | 'Content-Encoding: deflate' |
| 主要设计目标 | 网页文本与网页字体传输 | 通用 Unix 文件压缩 | 实时数据库与数据摄入 | 基础压缩算法 |
常见损坏模式与十六进制恢复指南
浏览器加载资源失败,报错 'ERR_CONTENT_DECODING_FAILED'。
根本原因: 代理或服务器在传输最终元块之前截断了 Brotli 流。
恢复方法: 清除浏览器缓存,检查服务器压缩设置,或通过 File2File 在本地解压。
安全分析与解析器攻击向量
Brotli 的静态字典和上下文建模需要对畸形的反向引用进行严格的内存边界检查。
已知攻击向量
- 当引用超出表大小的静态字典偏移量时发生越界指针读取。
- 解压炸弹(ZIP 炸弹等效项),由微小有效负载耗尽客户端内存。
- 滑动窗口环形缓冲区调整大小期间的缓冲区溢出。
防御性最佳实践:
历史渊源与里程碑
2016IETF 将 Brotli 发布为 RFC 7932,促使 HTTP 网页浏览器实现通用采用。
2015Google 将 Brotli 重新定位为 Gzip 的通用 HTTP 网页压缩替代方案。
2013Google 工程师 Jyrki Alakuijala 和 Zoltán Szabadka 引入 Brotli 用于 WOFF2 网页字体压缩。
核心优势与特点
- 在 HTML、CSS 和 JavaScript 网页资源上,比 Gzip 具有高出 15% 至 25% 的压缩率。
- 内含包含常见网页词汇、HTML 标签和短语的预定义 120 KB 静态字典。
- 极快的解压速度,确保近乎即时的客户端页面渲染。
技术局限与劣势
- 级别 11 的压缩计算开销较大(最适合静态资源预压缩)。
- 在所有网页浏览器中都需要 HTTPS,以防止透明代理损坏。
- 原始的 .br 文件在没有外部容器化的情况下缺少嵌入式文件名或权限头部。
趣味技术冷知识
- Brotli 得名于"Brötli",在瑞士德语中意为"小面包"。
- Brotli 内部的 120 KB 静态字典包含数千个常见的英语、西班牙语、德语、中文和 HTML 片段。
- Cloudflare、Fastly 和 Google 上超过 95% 的现代互联网流量都使用 Brotli 压缩交付。
常见技术问题
为什么对于网站而言 Brotli 比 Gzip 更快?
Brotli 将 HTML、CSS 和 JS 文件的压缩率比 Gzip 进一步缩小 20%,同时解压速度相近,从而减少了蜂窝网络所需的往返传输次数。
为什么 Brotli 需要 HTTPS?
网页浏览器仅支持通过安全的 HTTPS 连接传输 Brotli,因为互联网上的传统透明代理可能会误解或破坏新的 'br' 编码。
如何解压 .br 文件?
你可以直接在网页浏览器中使用 File2File.app,瞬间将 .br 或 .brotli 文件解压为纯文本或原始文件。