The best place to start is the http 1.1 specification , which describes how chunking works. In particular, section 3.6.1.
3.6.1
, , ,
. , , , .
Chunked-Body = *chunk
last-chunk
trailer
CRLF
chunk = chunk-size [ chunk-extension ] CRLF
chunk-data CRLF
chunk-size = 1*HEX
last-chunk = 1*("0") [ chunk-extension ] CRLF
chunk-extension= *( ";" chunk-ext-name [ "=" chunk-ext-val ] )
chunk-ext-name = token
chunk-ext-val = token | quoted-string
chunk-data = chunk-size(OCTET)
trailer = *(entity-header CRLF)
- , . , - , , .
HTTP-
. , (. 14,40).
, , - :
done = false;
uint8 bytes[];
while (!done)
{
chunksizeString = readuntilCRLF();
chunksizeString.strip();
chunksize = chunksizeString.convertHexString2Int();
bytes.append(readXBytes(chunksize));
readCRLF();
if (chunksize == 0)
done = true;
}
trailer = readuntilCRLF()
trailer = trailer.strip()
if (trailer != "")
readCRLF();
, ";" . , . , chunksize "0x".