【问题标题】:Can a response to an http request error be gziped?可以压缩对 http 请求错误的响应吗?
【发布时间】:2012-11-01 14:51:01
【问题描述】:

当尝试执行导致 400 Bad Request 错误的 http 请求时,nginx 服务器返回“400 Bad Request”、Content-Encoding: gzip 和非编码格式的响应。

因此,由于 Content-Encoding: gzip,我的代码使用 GZIPInputStream 包装了响应,这会引发错误。

我的问题是:当状态码不是“200 OK”时,gzip 是一个有效的编码吗?如果没有,我可以简单地检查状态码,如果返回的不是 200,我就不要尝试 gzip。

是否有这方面的规则/指南?这在任何地方都有记录吗?

TIA

【问题讨论】:

  • gzip 在任何响应码中都是有效的,但是无论如何你都可以只使用状态码进行判断(实际上我不知道为什么当状态码不是 200 时你需要内容)
  • 这是一个供其他开发人员使用的代码库,因此我们应该尽可能多地返回他们的信息,包括导致错误的请求正文。
  • @ice "其实我不知道为什么当状态码不是 200 时你需要内容" - 因为 301, 302, 303: "实体响应应该包含一个简短的超文本注释,其中包含指向新 URI 的超链接。", 403: "如果 [...] 服务器希望公开请求未完成的原因, 它应该在实体中描述拒绝的原因”, ...

标签: http http-headers gzip http-error


【解决方案1】:

是的,它是有效的编码。内容编码(和传输编码)与状态码正交。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    • 2011-03-20
    • 2013-12-28
    • 2019-03-04
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    相关资源
    最近更新 更多