是HTTP应用程序发送的内容的长度或转让的编码与204没有内容的反应坏了吗?

StackOverflow https://stackoverflow.com/questions/912863

  •  06-09-2019
  •  | 
  •  

我不能告诉从 RFC2616 是否HTTP客户应该接受204没有内容的反应,包括Content-Length:0或Transfer-Encoding:分头。这些标题似乎要打破一些HTTP客户的代理,这显然试图阅读的空响应的主体,但是 规范读:

  1. 任何响应的信息"不能"包括一个信息体(例如 该1xx、204和304和答复 任何响应向一个头请求) 总是终止的第一个空 线后头的领域, 不管实体头领 本中的信息。

我说"不管实体头领域"意味着客户应该容忍这种状况。的 二郎HTTP库 选择这种解释。但是, lighthttpdIBM 选择了相反的解释--服务器不应包括这些标题的答复,禁止从具有机构。

因此,应该将网络应用程序删除这些标题的反应,或应对网络基础设施和客户能容忍那些头上204没有的内容,304不修改,等等。?

有帮助吗?

解决方案

根据RFC7230(请参阅 http://tools.ietf.org/html/rfc7230#section-3.3.1)在第29页它国家:

一个服务器都必须不发送传编码头域中的任何 响应有地位代码1xx(信息)或204(没有 内容)。

因此,该网络应用程序不应当发送这些标题与应答。

其他提示

我不能告诉你什么是正确的,在于我不知道HTTP协议中,详细说明。

但是,你得问问自己:

  1. 我可以改变我的应用程序,以消除那些头?
  2. 或者我可以改变消费者我应忽视这些标题?

在我看来,程序不应把那些头在这种情况。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top