INFO
Categories

压缩提速(Nginx为代表)

四种主流压缩算法性能实测与场景选型:Gzip、Brotli、Zstd、Deflate 深度解析_brotli和gzip-CSDN博客

四种主流压缩算法性能实测与场景选型:Gzip、Brotli、Zstd、Deflate 深度解析
在前端性能优化、API 传输、CDN 加速、微服务通信中,压缩算法是不可忽视的基础设施。好的压缩算法意味着:
更少的传输数据 → 更快的页面加载
更低的延迟 → 更好的 API 响应
更低的带宽成本 → 可观的节省
但不是所有压缩算法都适合所有场景。今天我们就基于 4 种主流压缩算法:

  • Gzip(最普遍)
  • Brotli(浏览器新宠)
  • Zstd(后端黑马)
  • Deflate(历史遗留)
算法压缩率压缩速度解压速度浏览器支持推荐用途
Deflate★☆☆★★★☆★★★☆老旧兼容,慎用
Gzip★★☆★★☆★★★☆默认压缩算法,适合动态内容
Brotli★★★★★☆☆★★☆静态文件,移动优先优化
Zstd★★★☆★★★★★★★★后端服务通信、API、压缩缓存

1、Gzip压缩,经典但逐渐老化的主力,分为普通gzip及static

优点:
所有浏览器支持
Go/Python/Node 等主流语言均内置支持
解压速度不错,适合动态页面实时压缩

缺点:
压缩率不如 Brotli/Zstd
不适合静态文件的极限压缩需求
最佳应用:
HTML、JSON、动态 API 响应
浏览器请求头包含 Accept-Encoding: gzip

gzip on;
gzip_static on;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_min_length 1024;
gzip_vary on;
gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss;

2、Brotli:静态资源压缩之王

优点:
压缩率优于 Gzip,特别是文本文件(JS/CSS/HTML)
所有主流浏览器均支持 br 编码
非常适合 CDN 和移动端优化
缺点:
压缩速度慢(level 11 非常耗时)
适合预压缩,不适合实时内容
最佳应用:
静态资源:JS/CSS/HTML
配合 CDN(如 Cloudflare、Nginx)

3、Zstd:后端性能的未来

优点:
压缩比接近 Brotli,但速度远超 Gzip
解压速度极快,延迟低
广泛用于服务间通信、缓存、数据库(如 RocksDB)
缺点:
浏览器不支持 Accept-Encoding: zstd
需手动管理内容协商或服务内部使用
最佳应用:
内部 RPC、微服务 JSON 压缩
大量日志或缓存数据压缩
CDN 存储层

4、实际压缩效果横向对比(以 1MB HTML 文本为例),注意:压缩等级(Level 1~11)不同会影响实际数值,下表为 Brotli Level 6、Zstd Level 3。

压缩算法压缩时间解压时间原始大小 → 压缩后压缩率
Gzip24ms8ms1MB → 330KB67% ↓
Brotli120ms10ms1MB → 280KB72% ↓
Zstd9ms2ms1MB → 300KB70% ↓
Deflate21ms7ms1MB → 350KB65% ↓

5、最终选型建议

场景推荐算法原因说明
浏览器端 HTML/JSBrotli(预压) + Gzip(实时)最佳压缩率,兼容主流浏览器
API 接口返回 JSONGzip 或 Zstd(后端)Gzip 浏览器兼容性好,Zstd 性能更佳
内网微服务通信Zstd压缩/解压速度极佳,带宽与延迟都优化
图片、音频、视频不压缩已压缩媒体类型,二次压缩无效或反而增大文件体积
老旧设备或 IE 浏览器兼容Gzip / Deflate若极端兼容需求可启用 Deflate 作为 Fallback

6、结语:压缩是基础能力,但值得精细运营

压缩不是“部署一次就忘”的操作,而应结合浏览器特性、传输内容、用户网络条件进行精细化配置

  • Brotli ≠ Gzip 替代,而是静态资源的补充
  • Zstd ≠ 浏览器方案,而是服务间加速器
  • Gzip 仍是前端压缩的默认首选
  • Deflate 可敬但不值得继续投入