gzip和brotli压缩怎么选?看内容类型和客户端支持

先看结论:没有绝对更好,只有更适合

如果你的网站已经启用 HTTPS,且主要用户使用近几年的 Chrome、Firefox、Edge 或 Safari,优先为静态文本资源开启 Brotli,同时保留 Gzip 作为回退,是兼顾压缩率和兼容性的做法。
如果站点仍有大量老客户端、老旧安卓 WebView,或者服务端 CPU 资源紧张、又不想额外安装模块,Gzip 更省事也更稳。

两者都是 HTTP 内容编码,不是图片压缩格式。
它们只对 HTML、CSS、JavaScript、JSON、SVG 等文本资源有效,对 JPEG、PNG、WebP、MP4 这类已压缩文件基本没有收益。

压缩率与兼容性怎么权衡

Brotli 使用更复杂的字典和上下文建模,在相同资源上通常比 Gzip 得到更小的体积,尤其是 CSS 和 JavaScript 文件。
代价是压缩时 CPU 开销更高,解压时开销相对可控。
Gzip 的优势是支持范围广,几乎所有 HTTP 客户端都能处理,服务端模块也通常默认可用。

一个实际判断条件是:看你的访问日志里 User-Agent 的分布。
如果绝大多数请求来自现代浏览器,Brotli 的兼容性风险很低;
如果仍有大量旧版系统或嵌入式浏览器,Brotli 可能不被识别,客户端会回退到未压缩或 Gzip,具体取决于服务端配置。

另外,Brotli 在浏览器端通常要求 HTTPS 才能被协商使用,HTTP 明文站点即使服务端开启,客户端也不一定接受。
这一点在配置前要先确认。

Nginx 上怎么配置和验证

以下示例适用于常见 Linux 发行版上的 Nginx,前提是你有权限修改站点配置并重载服务。
操作前先备份原配置文件。

开启 Gzip

在 http、server 或 location 块中加入:

gzip on;
gzip_types text/plain text/css application/javascript application/json image/svg+xml;
gzip_min_length 1024;
gzip_comp_level 5;

gzip_min_length 避免压缩过小的文件,gzip_comp_level 取 5 左右是压缩率和 CPU 开销的常见折中。
改完后执行 nginx -t 检查语法,再 nginx -s reload 重载。

开启 Brotli

Nginx 默认不一定带 Brotli 模块,需要确认已安装 ngx_brotli 或发行版提供的 Brotli 模块。
配置示例:

brotli on;
brotli_types text/plain text/css application/javascript application/json image/svg+xml;
brotli_comp_level 6;
brotli_min_length 1024;

如果模块未安装,nginx -t 会报未知指令,此时不要强行写入生产配置,先安装对应模块或改用 Gzip。

验证实际返回的编码

用 curl 带 Accept-Encoding 请求头检查响应头:

curl -I -H "Accept-Encoding: gzip, br" https://你的域名/static/app.js

观察返回头中的 Content-Encoding。
如果返回 br,说明 Brotli 生效;
返回 gzip 说明走了 Gzip;
没有该头则说明未压缩。
也可以对比压缩前后 Content-Length 的变化,但注意分块传输时该头可能不存在。

容易踩坑的几个地方

  • 不要对图片、视频、压缩包开启文本压缩,浪费 CPU 且收益接近零。
  • 动态接口谨慎开启 Brotli 高压缩级别,高并发下 CPU 可能成为瓶颈;静态资源适合预压缩或中等压缩级别。
  • CDN 回源和边缘压缩要分开看,源站开了 Brotli 不代表 CDN 边缘一定按 Brotli 返回,需要查看 CDN 的压缩配置和缓存键是否包含 Accept-Encoding。
  • 测试时清缓存或带随机参数,避免拿到旧缓存结果误判。

常见疑问

Brotli 能完全替代 Gzip 吗?
不能。老客户端和不支持 Brotli 的工具链仍需要 Gzip 回退,同时开启两者是常见做法。

开了 Brotli 后页面变慢是怎么回事?
先看服务端 CPU 和压缩级别。动态内容用高压缩级别、或对大量小文件逐个压缩,都可能增加响应时间。静态资源可考虑构建时预压缩。

HTTP 站点能用 Brotli 吗?
浏览器端通常要求 HTTPS 才协商 Brotli,HTTP 站点建议以 Gzip 为主。

压缩级别越高越好吗?
不是。级别越高 CPU 开销越大,压缩收益递减。静态资源可以离线预压缩到较高级别,动态响应建议用中等偏低级别。

分享到:
上一篇
图片加载慢怎么处理:从压缩、格式到CDN的排查顺序
下一篇
HTTP/3 有必要开吗?看清条件再决定
1
系统公告

关于香港云优质服务器IP地址更换的通知

尊敬的客户: 因原IP运营商大幅涨价,为避免成本转嫁至用户,我司决定更换IP服务商。本次更换后,您的续费价格将保持不变,且新IP网络质量与服务标准不受影响。新IP已分配至后台,即刻生效(更换的新IP都是香港原生IPv4)。 涉及 IP 段: 45.192.x.x 旧 IP 停用时间: 2026 年 12 月 1 日
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意