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

sch*_*wer 7 http transfer-encoding rfc2616 http-headers

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

Dav*_*rtz 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 ] )
Run Code Online (Sandbox Code Playgroud)


Rol*_*lig 6

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

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

那么你的问题究竟是什么?

  • 读取一个十六进制数
  • 忽略下一个 CRLF 之前的所有内容
  • 要开心

  • 我想问一下,当服务器损坏并发送永无止境的十六进制数时,您有什么建议?成为受害者并永远读取永无止境的十六进制数或修复适合您的应用程序的限制并在发生这种情况时发出警告? (2认同)