The data chunks assemble into one body.

highlighted = computed this step

Data chunks assemble in order

The first chunk data is followed by the second chunk data.

chunk data order checked\text{chunk data order checked}
Decoded bodyThe chunk sizes, decoded body, and terminator checks are recomputed from pinned response bytes.Decoded body - GET /stream chunks decode to hi! (3 bytes)sectionnamevaluecheckrequest linemethodGETparsedrequest linepath/streamparsedrequest lineversionHTTP/1.1parsedheaderHostapi.exampleexactstatusversionHTTP/1.1parsedstatusstatus200 OKokheaderTransfer-EncodingchunkedchunkedheaderContent-Lengthabsentnot usedchunk 1size token2hex sizechunk 1decimal size2convertedchunk 1data displayhisafe display formchunk 1data hex6869pinned byteschunk 1roledatastream partchunk 2size token1hex sizechunk 2decimal size1convertedchunk 2data displayexclamation marksafe display formchunk 2data hex21pinned byteschunk 2roledatastream partchunk 3size token0hex sizechunk 3decimal size0convertedchunk 3data displayend markersafe display formchunk 3data hexno datapinned byteschunk 3roleendstream partdecoded bodydisplayhi!safe display formdecoded bodyexact hex686921pinned bytesdecoded bodybyte length3countedcheckfirst chunk bytes2chunk sizechecksecond chunk bytes1chunk sizecheckdecoded body bytes3sumcheckzero chunk endsyesterminatorcheckContent-Lengthabsentabsent

The readable body is hi!

The display row is readable, while the exact body bytes are carried by the hex row.

decoded display=hi!\text{decoded display}=\text{hi!}
Decoded bodyThe chunk sizes, decoded body, and terminator checks are recomputed from pinned response bytes.Decoded body - GET /stream chunks decode to hi! (3 bytes)sectionnamevaluecheckrequest linemethodGETparsedrequest linepath/streamparsedrequest lineversionHTTP/1.1parsedheaderHostapi.exampleexactstatusversionHTTP/1.1parsedstatusstatus200 OKokheaderTransfer-EncodingchunkedchunkedheaderContent-Lengthabsentnot usedchunk 1size token2hex sizechunk 1decimal size2convertedchunk 1data displayhisafe display formchunk 1data hex6869pinned byteschunk 1roledatastream partchunk 2size token1hex sizechunk 2decimal size1convertedchunk 2data displayexclamation marksafe display formchunk 2data hex21pinned byteschunk 2roledatastream partchunk 3size token0hex sizechunk 3decimal size0convertedchunk 3data displayend markersafe display formchunk 3data hexno datapinned byteschunk 3roleendstream partdecoded bodydisplayhi!safe display formdecoded bodyexact hex686921pinned bytesdecoded bodybyte length3countedcheckfirst chunk bytes2chunk sizechecksecond chunk bytes1chunk sizecheckdecoded body bytes3sumcheckzero chunk endsyesterminatorcheckContent-Lengthabsentabsent

The exact decoded bytes are pinned as hex

The decoded body hex row is the exact byte representation.

decoded hex checked\text{decoded hex checked}
Decoded bodyThe chunk sizes, decoded body, and terminator checks are recomputed from pinned response bytes.Decoded body - GET /stream chunks decode to hi! (3 bytes)sectionnamevaluecheckrequest linemethodGETparsedrequest linepath/streamparsedrequest lineversionHTTP/1.1parsedheaderHostapi.exampleexactstatusversionHTTP/1.1parsedstatusstatus200 OKokheaderTransfer-EncodingchunkedchunkedheaderContent-Lengthabsentnot usedchunk 1size token2hex sizechunk 1decimal size2convertedchunk 1data displayhisafe display formchunk 1data hex6869pinned byteschunk 1roledatastream partchunk 2size token1hex sizechunk 2decimal size1convertedchunk 2data displayexclamation marksafe display formchunk 2data hex21pinned byteschunk 2roledatastream partchunk 3size token0hex sizechunk 3decimal size0convertedchunk 3data displayend markersafe display formchunk 3data hexno datapinned byteschunk 3roleendstream partdecoded bodydisplayhi!safe display formdecoded bodyexact hex686921pinned bytesdecoded bodybyte length3countedcheckfirst chunk bytes2chunk sizechecksecond chunk bytes1chunk sizecheckdecoded body bytes3sumcheckzero chunk endsyesterminatorcheckContent-Lengthabsentabsent

Summary

The zero-size chunk is not body data; it only stops the body.

decoded body checked\text{decoded body checked}
Decoded bodyThe chunk sizes, decoded body, and terminator checks are recomputed from pinned response bytes.Decoded body - GET /stream chunks decode to hi! (3 bytes)sectionnamevaluecheckrequest linemethodGETparsedrequest linepath/streamparsedrequest lineversionHTTP/1.1parsedheaderHostapi.exampleexactstatusversionHTTP/1.1parsedstatusstatus200 OKokheaderTransfer-EncodingchunkedchunkedheaderContent-Lengthabsentnot usedchunk 1size token2hex sizechunk 1decimal size2convertedchunk 1data displayhisafe display formchunk 1data hex6869pinned byteschunk 1roledatastream partchunk 2size token1hex sizechunk 2decimal size1convertedchunk 2data displayexclamation marksafe display formchunk 2data hex21pinned byteschunk 2roledatastream partchunk 3size token0hex sizechunk 3decimal size0convertedchunk 3data displayend markersafe display formchunk 3data hexno datapinned byteschunk 3roleendstream partdecoded bodydisplayhi!safe display formdecoded bodyexact hex686921pinned bytesdecoded bodybyte length3countedcheckfirst chunk bytes2chunk sizechecksecond chunk bytes1chunk sizecheckdecoded body bytes3sumcheckzero chunk endsyesterminatorcheckContent-Lengthabsentabsent