9

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

4

2 回答 2

11

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

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

chunk-size     = 1*HEX

chunk-extension= *( ";" chunk-ext-name [ "=" chunk-ext-val ] )
于 2011-08-14T18:36:38.520 回答
7

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

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

那么你的问题到底是什么?

  • 读取一个十六进制数
  • 忽略下一个 CRLF 之前的所有内容
  • 要开心
于 2011-08-14T18:39:30.477 回答