HTTP 响应数据超过内容长度时的代理/网关行为

Posted

技术标签:

【中文标题】HTTP 响应数据超过内容长度时的代理/网关行为【英文标题】:Proxy / gateway behaviour if HTTP response data exceeds content length 【发布时间】:2013-07-17 06:50:50 【问题描述】:

当 http 服务器发送数据大小超过内容长度的 HTTP 响应时,代理/网关应该如何表现? 将其作为不符合 RFC 的规定予以删除是一种可行的方法,但看起来今天有相当多的实现/部署具有此行为,而此更改最终会破坏这些 URL。

非常感谢任何见解/指针。

谢谢, 开发

【问题讨论】:

【参考方案1】:

如果数据大小超过内容长度,则线路上的剩余字节被视为对下一个(流水线)请求的响应的一部分。

如果没有与该响应匹配的未完成请求,请参阅https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-p1-messaging-26#section-3.3.3 -

   If the final response to the last request on a connection has been
   completely received and there remains additional data to read, a user
   agent MAY discard the remaining data or attempt to determine if that
   data belongs as part of the prior response body, which might be the
   case if the prior message's Content-Length value is incorrect.  A
   client MUST NOT process, cache, or forward such extra data as a
   separate response, since such behavior would be vulnerable to cache
   poisoning.

【讨论】:

以上是关于HTTP 响应数据超过内容长度时的代理/网关行为的主要内容,如果未能解决你的问题,请参考以下文章

向 Http GCM 服务器发送帖子时的响应时间非常长

nginx在代理到upstream时转换http1.1为http1.0,长连接转为短连接

长连接网关设计与实践的一些理解

长连接网关设计与实践的一些理解

长连接网关设计与实践的一些理解

长连接网关设计与实践的一些理解