使用Transfer-Encoding chunked的HTTP响应中的最大块大小是多少?

时间:2011-08-14 18:32:39

标签: http http-headers transfer-encoding rfc2616

w3.org (RFC2616)似乎没有定义块的最大大小。但是如果没有最大块大小,则没有空间用于块扩展。必须有一个最大的块大小,否则我不能忽略chunk-extension,因为我不建议这样做(Quote:"MUST ignore chunk-extension extensions they do not understand")。

2 个答案:

答案 0 :(得分:9)

每个块扩展必须以分号开头,块扩展列表必须以CRLF结尾。解析块大小时,请以分号或CRLF停止。如果你停在分号,忽略下一个CRLF的所有内容。不需要最大块大小。

chunk          = chunk-size [ chunk-extension ] CRLF
                 chunk-data CRLF

chunk-size     = 1*HEX

chunk-extension= *( ";" chunk-ext-name [ "=" chunk-ext-val ] )

答案 1 :(得分:4)

HTTP规范非常清楚HTTP消息的语法。

块大小始终以十六进制数给出。如果该数字不是由CRLF直接跟随,而是;,则您知道存在扩展名。此扩展名由其名称(chunk-ext-name)标识。如果您从未听说过该特定名称,则必须忽略它。

那究竟是什么问题?

  • 读取十六进制数字
  • 忽略下一个CRLF的所有内容
  • 快乐