GZIP压缩后体积为原文件6倍且返回400 Bad Request原因求解
GZIP压缩体积膨胀+400状态码异常成因
压缩后体积大于原文件的原因
gzip压缩格式本身存在固定的元数据开销:标准gzip结构包含至少10字节的头部标识、压缩参数信息,以及8字节的尾部CRC校验值、原始文件长度信息,仅头尾固定开销就已经和你测试用的10B原文件体积相当。- 体积小于100B的极小文件几乎不存在可被压缩的冗余信息,压缩算法不仅无法缩减内容体积,还会额外叠加编码标识的开销,最终出现体积膨胀属于极小文件压缩的正常表现。
- 生产环境中服务端通常会配置1KB及以上的最小压缩阈值,小于阈值的资源不会触发
gzip压缩,就是为了避免这类反向膨胀的问题。
400 Bad Request状态码的原因
- 你拿到的58B压缩内容不是原测试文件的压缩结果,而是服务端返回的400错误页面的压缩内容:这是你当前测试结果存在偏差的核心原因。
- 400状态码代表服务端无法正常解析你发起的测试请求,常见触发原因包括:测试工具构造的
Accept-Encoding请求头格式非法、请求携带的参数不符合服务端校验规则、请求路径指向的测试资源不存在、服务端对gzip请求有额外的权限/参数校验未通过。 - 你观测到的-480%压缩比例,是用400错误页的压缩体积和原测试文件体积计算得到的错误比值,不具备实际参考意义。
内容的提问来源于stack exchange,提问作者Yandy
相关产品推荐
相关产品推荐

