Brotli 流 (.br)

IETF 标准

Brotli 是由 Google 开发的开源无损数据压缩算法,专门针对网页排版(WOFF2)和 HTTP 内容编码(Content-Encoding: br)进行了优化,以加速互联网页面传输。

将 BROTLI 转换为 GZIP

免费的浏览器端 BROTLI 转 GZIP 转换器。在您的设备上即时转换文件。

检查与元数据

操作系统和文件分析器通过检查开头的二进制字节序列来识别 Brotli 文件:

选择或将文件拖放到此处

隐私保护 - 文件不会离开您的设备

或粘贴 Ctrl+V
零网络传输隐私保证: 上传至外部服务器的数据为 0 字节。所有处理均在您的浏览器沙箱中本地完成。

字节级文件头签名 (魔数)

操作系统和文件分析器通过检查开头的二进制字节序列来识别 Brotli 文件:

十六进制签名 (偏移量 0):

CE B2 CF 81

ASCII 表示形式: βÏ\x81

标准化: IETF RFC 7932

技术规格

容器架构原始比特流帧格式,可选声明窗口大小并包含多个元数据块
压缩方式LZ77 滑动字典(最大 16 MB)、二阶上下文建模和 120 KB 静态字典
字节序小端位打包
色彩空间不适用(数据压缩流)
通道与结构通用字节流压缩
最大尺寸字节流长度不限(支持无限长度的流式处理)
透明度无损、逐字节精确保留往返数据
流式传输与渐进式加载元数据块分段支持连续的 HTTP 分块传输流式处理

技术对比矩阵:Brotli 对比同类产品

技术属性Brotli (当前)GZZSTDDEFLATE
内置静态字典包含 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.app 在本地解压。

安全分析与解析器攻击向量

Brotli 的静态字典和上下文建模需要对畸形的反向引用进行严格的内存边界检查。

已知攻击向量

  • 当引用超出表大小的静态字典偏移量时发生越界指针读取。
  • 解压炸弹(相当于 ZIP 炸弹),微小的有效负载即可耗尽客户端内存。
  • 滑动窗口环形缓冲区调整大小期间的缓冲区溢出。

防御性最佳实践: 在解压不受信任的 Brotli 流期间强制实施最大输出缓冲区大小。

历史渊源与里程碑

2016IETF 将 Brotli 发布为 RFC 7932.
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 文件解压为纯文本或原始文件。