Каков максимальный размер чанка в HTTP-ответе с чанки Transfer-Encoding? - PullRequest
7 голосов
/ 14 августа 2011

w3.org (RFC2616) , похоже, не определяет максимальный размер для кусков. Но без максимального размера чанка нет места для расширения чанка. Должен быть максимальный размер куска, иначе я не могу игнорировать расширение куска, как мне советуют, если его невозможно понять (Цитата: "MUST ignore chunk-extension extensions they do not understand").

Ответы [ 2 ]

9 голосов
/ 14 августа 2011

Каждое расширение чанка должно начинаться с точки с запятой, а список расширений чанка должен заканчиваться CRLF.При анализе размера фрагмента остановитесь на точке с запятой или CRLF.Если вы остановились на точке с запятой, игнорируйте все до следующего CRLF.Максимальный размер куска не требуется.

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

chunk-size     = 1*HEX

chunk-extension= *( ";" chunk-ext-name [ "=" chunk-ext-val ] )
4 голосов
/ 14 августа 2011

Спецификация HTTP довольно четко описывает синтаксис сообщений HTTP.

Размер фрагмента всегда задается в шестнадцатеричном формате.Если за этим номером непосредственно не стоит CRLF, а вместо ;, вы знаете, что существует расширение.Это расширение идентифицируется по его имени (chunk-ext-name).Если вы никогда не слышали об этом конкретном имени, вы ДОЛЖНЫ игнорировать его.

Так в чем именно ваша проблема?

  • Считайте шестнадцатеричное число
  • Игнорировать все до следующего CRLF
  • Будь счастлив
...