服务器是否有可能返回具有204代码的车身



引用https://en.wikipedia.org/wiki/wiki/list_of_http_statp_status_codes_codes#2xx_success:

204没有内容

服务器成功处理了该请求并没有返回任何内容。

这部分是关于不返回任何内容的:

  • 由HTTP协议执行,以便可以相信,如果我们获得204
  • HTTP规范要求,并被广泛遵守但并非不可能;因此,在实践中,虽然服务器理论上 以204的代码发送车身,但实际上仍然可以假定不发生这种情况,如果发生这种情况,则服务器被损坏了吗?
  • 从HTTP规范要求或至少强烈建议的理论上;但是在实践中,这不能依赖,因为有一些服务器破坏了这个假设 - 网络浏览器不能假设它试图获取的网站肯定包含有效的HTML,并且必须准备好处理相反的情况?

或,换句话说:如果我得到了HTTP 204响应代码,我可以安全地忽略获得非空体而不必担心数据丢失的可能性吗?还是最佳实践决定我应该检查身体确实是空的,如果不是,那么我不应该默默丢弃返回的数据?

只有您的客户端和服务器。服务器可以是任何自定义软件。HTTP只是文本。某些HTTP服务器可能完全输出204状态代码,然后是响应主体。该服务器之间没有任何阻止发生这种情况的服务器。

所以,是的,这是可能的。这是荒谬的。客户,即使您收到204代码并完全丢弃身体后,您的客户是完全正确的。无论您是想这样做,还是想在204之后期望可能的身体数据取决于您。规格的" 204"是指"无身体数据"。

https://greenbytes.de/tech/webdav/rfc7230.html#message.body.lenge.length:

消息主体的长度由以下一个(按优先顺序(确定:

  1. 对HEAD请求的任何响应以及对1xx(信息(,204(无内容(或304(未修改(状态代码的任何响应始终由标头字段之后的第一个空线终止消息中存在的字段,因此不能包含消息主体。

最新更新