最直观的gzip压缩效果测试是对比开启前后响应体大小:先用curl加不同accept-encoding头获取content-length,再下载完整文件用ls -lh计算真实压缩率,最后通过浏览器network面板验证transfer size与resource size差值。

直接对比开启 Gzip 前后的响应体大小,是最直观的测试方式。重点不是看“有没有压缩”,而是看“压缩了多少”,这决定了实际带宽节省效果。
用 curl 获取原始字节数并比对
执行两条命令,分别模拟未声明压缩支持和声明支持的请求,再比对 Content-Length:
- 不带压缩头(获取原始大小):
curl -s -I -H "Accept-Encoding:" https://your-site.com/main.js | grep Content-Length - 带 gzip 头(获取压缩后大小):
curl -s -I -H "Accept-Encoding: gzip" https://your-site.com/main.js | grep -E "(Content-Length|Content-Encoding)"
注意:-I 只取响应头,-s 屏蔽进度条;若返回中同时出现 Content-Encoding: gzip 和更小的 Content-Length,说明压缩生效且有体积收益。
下载完整响应体计算真实压缩率
仅看响应头里的 Content-Length 不够严谨——有些代理或 CDN 可能改写该字段。更可靠的方式是下载完整 body 并统计字节:
- 下载未压缩版本:
curl -H "Accept-Encoding:" -s https://your-site.com/style.css > style.css.raw - 下载 gzip 版本:
curl -H "Accept-Encoding: gzip" -s https://your-site.com/style.css > style.css.gz - 查看大小:
ls -lh style.css.*
例如输出:
-rw-r--r-- 1 user user 124K Oct 2 09:15 style.css.gz
-rw-r--r-- 1 user user 486K Oct 2 09:15 style.css.raw
说明压缩率约 74%,节省了 362KB 传输量。
浏览器开发者工具验证(面向真实用户)
在 Chrome 或 Edge 的 Network 面板中打开一个 JS/CSS 文件,切换到 Headers 标签页,检查两项:
- Response Headers 中是否含 Content-Encoding: gzip
- Size / Transfer Size 行:左侧是解压后大小(通常标为 “resource”),右侧是实际传输字节数(标为 “transfer”)。两者的差值就是压缩节省的流量。
这个视图反映的是浏览器真实收到的数据量,包含所有中间链路影响(如 CDN 是否透传 gzip、是否被代理解压重传等),比服务端日志更贴近终端体验。
避免只测 HTML 忽略关键静态资源
首页 HTML 通常很小(
- /static/js/app.[hash].js
- /css/main.css
- /api/config.json(如果后端返回 text/json 且启用了 gzip_types)
这些文件普遍在 50–500KB 区间,压缩后体积下降明显,测试结果更有参考价值。











