标准答案

  1. JSON、HTML、CSS、JavaScript、文本和部分结构化响应通常压缩率较高,在网络带宽受限或响应体较大时更容易降低传输延迟。
  2. 图片、视频、音频、压缩包和已压缩二进制格式再次压缩收益很小,反而增加 CPU、延迟和缓存变体。
  3. 小响应可能因压缩初始化和 CPU 消耗得不偿失,应按内容类型和最小体积设置阈值。
  4. 压缩会改变响应大小。若攻击者可在同一压缩响应中注入可控内容并观察长度,可能推测 Cookie、Token 等秘密的匹配信息。
  5. 对包含高敏感秘密的交叉站点可观察响应,应评估禁用压缩、分离秘密和攻击者输入、加入随机填充及其他应用层防护。

题目解析

压缩优化要看端到端成本:网络节省、CPU、网关、缓存 Vary、客户端解压和响应大小分布都影响最终体验。

安全风险不是“只要用了 gzip 就泄露”,而是秘密和攻击者可控内容在可观察压缩上下文中发生长度相关性。

常见误区

  • 对所有内容类型强制压缩,包括已压缩媒体和极小响应。
  • 只看带宽节省,不看服务端 CPU 和 P99 延迟。
  • 把含敏感 Cookie 的动态页面和攻击者可控反射内容放进同一压缩响应却不评估风险。

作者信息