7

我想避免从(符合)HTTP 服务器获得分块编码的 HTTP 服务器响应。我正在阅读RFC 2616部分“ 14.39 TE ”,在我看来,我可以通过指定TE: chunked;q=0. 如果我无法避免分块编码,我想避免使用预告片。会指定TE: trailers;q=0工作吗?

4

1 回答 1

10

来自rfc2616 - 超文本传输​​协议 - HTTP/1.1 3.6.1 分块传输编码部分:

所有 HTTP/1.1 应用程序必须能够接收和解码“分块”传输编码,并且必须忽略他们不理解的块扩展扩展。

在更新的RFC 7230 - 超文本传输​​协议 (HTTP/1.1):4.1 节中的消息语法和路由中,情况仍然如此。分块传输编码虽然措辞略有不同:

接收者必须能够解析和解码分块传输编码。

因此,如果您想符合 HTTP/1.1,则必须接受分块编码。


##更新##

至于预告片:我认为如果您不在TE请求中发送标头字段,则符合要求的服务器不应向您发送任何预告片。如果它仍然发送预告片,你可能会忽略它们(再次第 3.6.1 节):

除非以下至少一项为真,否则在响应中使用分块传输编码的服务器不得将尾部用于任何头字段:

a) 请求包含一个 TE 标头字段,该字段指示“trailers”在响应的传输编码中是可接受的,如第 14.39 节所述;或者,

b) 服务器是响应的源服务器,尾部字段完全由可选的元数据组成,接收者可以使用消息(以源服务器可接受的方式)而不接收此元数据。换句话说,源服务器愿意接受尾部字段可能在通往客户端的路径上被静默丢弃的可能性。

于 2013-08-11T17:06:13.237 回答