【发布时间】:2019-05-09 03:37:53
【问题描述】:
引用https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#2xx_Success:
204 无内容
服务器成功处理了请求,没有返回任何内容。
这部分是关于不返回任何内容:
- 由 HTTP 协议强制执行,因此可以相信,如果我们收到 204,那么响应肯定是空的?
- HTTP 规范要求并得到广泛遵守,但并非不可能;所以在实践中,虽然服务器理论上可以发送代码为 204 的正文,但实际上仍然可以假设它不会发生,如果发生这种情况,那么服务器就坏了?
- 理论上HTTP规范要求或至少强烈推荐;但在实践中,这是不可靠的,因为有些服务器打破了这一假设 - 以类似的方式,网络浏览器不能假设它试图获取的网站肯定包含有效的 HTML,并且必须准备好处理相反的情况?
或者,换句话说:如果我收到 HTTP 204 响应代码,我是否可以放心地忽略获得非空正文的可能性,而不必担心数据丢失?或者最佳实践是否规定我应该检查正文是否确实为空,如果不是,那么我不应该默默地丢弃返回的数据?
【问题讨论】:
-
“由 HTTP 协议强制执行” - 协议不是机器,而是对行为的共同理解。无麸质蛋糕的烘焙配方并不强制根据配方烘焙的任何蛋糕实际上都不含麸质。必须由试图通过协议进行通信的各方来执行。
标签: http httpresponse http-status-code-204