Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
发送内容长度或传输编码且204无内容响应的HTTP应用程序是否已中断?_Http_Networking_Rfc2616 - Fatal编程技术网

发送内容长度或传输编码且204无内容响应的HTTP应用程序是否已中断?

发送内容长度或传输编码且204无内容响应的HTTP应用程序是否已中断?,http,networking,rfc2616,Http,Networking,Rfc2616,我无法从HTTP客户端是否应该接受包含内容长度为0或传输编码为分块头的204无内容响应中判断。这些标头似乎破坏了一些HTTP客户端和代理,它们显然试图读取空的响应正文,但是: “不得”包含消息正文的任何响应消息(例如 1xx、204和304响应和 对HEAD请求的任何响应)都是 始终由第一个空的 标题字段后的行, 不管实体标题字段是什么 出现在信息中 对我来说,“不考虑实体头字段”意味着客户端应该容忍这种状态。法官选择了这种解释。但是,选择了相反的解释——服务器不应该为禁止包含主体的响应包含这些

我无法从HTTP客户端是否应该接受包含内容长度为0或传输编码为分块头的204无内容响应中判断。这些标头似乎破坏了一些HTTP客户端和代理,它们显然试图读取空的响应正文,但是:

  • “不得”包含消息正文的任何响应消息(例如 1xx、204和304响应和 对HEAD请求的任何响应)都是 始终由第一个空的 标题字段后的行, 不管实体标题字段是什么 出现在信息中
  • 对我来说,“不考虑实体头字段”意味着客户端应该容忍这种状态。法官选择了这种解释。但是,选择了相反的解释——服务器不应该为禁止包含主体的响应包含这些头


    那么web应用程序是否应该从响应中删除这些头,或者网络基础结构和客户端是否应该容忍204无内容、304未修改等上的头?

    我不能告诉您什么是正确的,因为我不知道HTTP协议的详细信息

    然而,你必须问问自己:

  • 我可以更改应用程序以删除这些标题吗
  • 或者我可以更改应用程序的使用者以忽略这些标题吗
  • 我认为,在这种情况下,应用程序不应发送这些标题。

    根据第29页末尾的RFC7230(请参阅),它声明:

    服务器不得以任何方式发送传输编码标头字段 状态代码为1xx(信息性)或204(否)的响应 内容)

    因此,web应用程序不应该随响应一起发送这些标题。

    Nice——六年过去了,您得到了正确的答案!