The toy chunked example keeps its boundary narrow.
What this toy model checks
The trust boundary parses one GET request, one chunked response, two data chunks, one zero chunk, and the decoded body.
recompute chunked body \text{recompute chunked body} recompute chunked body
Chunked honesty boundary The chunk sizes, decoded body, and terminator checks are recomputed from pinned response bytes. Chunked honesty boundary - GET /stream chunks decode to hi! (3 bytes) section name value check request line method GET parsed request line path /stream parsed request line version HTTP/1.1 parsed header Host api.example exact status version HTTP/1.1 parsed status status 200 OK ok header Transfer-Encoding chunked chunked header Content-Length absent not used chunk 1 size token 2 hex size chunk 1 decimal size 2 converted chunk 1 data display hi safe display form chunk 1 data hex 6869 pinned bytes chunk 1 role data stream part chunk 2 size token 1 hex size chunk 2 decimal size 1 converted chunk 2 data display exclamation mark safe display form chunk 2 data hex 21 pinned bytes chunk 2 role data stream part chunk 3 size token 0 hex size chunk 3 decimal size 0 converted chunk 3 data display end marker safe display form chunk 3 data hex no data pinned bytes chunk 3 role end stream part decoded body display hi! safe display form decoded body exact hex 686921 pinned bytes decoded body byte length 3 counted check first chunk bytes 2 chunk size check second chunk bytes 1 chunk size check decoded body bytes 3 sum check zero chunk ends yes terminator check Content-Length absent absent
Honesty boundary
NOTE: toy HTTP chunked transfer only; not trailers, chunk extensions, compression, backpressure, partial reads, proxies, caches, TLS records, HTTP/2 or HTTP/3 framing, content sniffing, frameworks, or production server config.
toy chunked transfer only \text{toy chunked transfer only} toy chunked transfer only
Chunked honesty boundary The chunk sizes, decoded body, and terminator checks are recomputed from pinned response bytes. Chunked honesty boundary - GET /stream chunks decode to hi! (3 bytes) section name value check request line method GET parsed request line path /stream parsed request line version HTTP/1.1 parsed header Host api.example exact status version HTTP/1.1 parsed status status 200 OK ok header Transfer-Encoding chunked chunked header Content-Length absent not used chunk 1 size token 2 hex size chunk 1 decimal size 2 converted chunk 1 data display hi safe display form chunk 1 data hex 6869 pinned bytes chunk 1 role data stream part chunk 2 size token 1 hex size chunk 2 decimal size 1 converted chunk 2 data display exclamation mark safe display form chunk 2 data hex 21 pinned bytes chunk 2 role data stream part chunk 3 size token 0 hex size chunk 3 decimal size 0 converted chunk 3 data display end marker safe display form chunk 3 data hex no data pinned bytes chunk 3 role end stream part decoded body display hi! safe display form decoded body exact hex 686921 pinned bytes decoded body byte length 3 counted check first chunk bytes 2 chunk size check second chunk bytes 1 chunk size check decoded body bytes 3 sum check zero chunk ends yes terminator check Content-Length absent absent
No client compute
The page shows already validated rows. It does not parse chunk lines in browser code.
static validated rows \text{static validated rows} static validated rows
Chunked honesty boundary The chunk sizes, decoded body, and terminator checks are recomputed from pinned response bytes. Chunked honesty boundary - GET /stream chunks decode to hi! (3 bytes) section name value check request line method GET parsed request line path /stream parsed request line version HTTP/1.1 parsed header Host api.example exact status version HTTP/1.1 parsed status status 200 OK ok header Transfer-Encoding chunked chunked header Content-Length absent not used chunk 1 size token 2 hex size chunk 1 decimal size 2 converted chunk 1 data display hi safe display form chunk 1 data hex 6869 pinned bytes chunk 1 role data stream part chunk 2 size token 1 hex size chunk 2 decimal size 1 converted chunk 2 data display exclamation mark safe display form chunk 2 data hex 21 pinned bytes chunk 2 role data stream part chunk 3 size token 0 hex size chunk 3 decimal size 0 converted chunk 3 data display end marker safe display form chunk 3 data hex no data pinned bytes chunk 3 role end stream part decoded body display hi! safe display form decoded body exact hex 686921 pinned bytes decoded body byte length 3 counted check first chunk bytes 2 chunk size check second chunk bytes 1 chunk size check decoded body bytes 3 sum check zero chunk ends yes terminator check Content-Length absent absent
Summary
Chunked transfer can send body bytes in pieces, and a zero-size chunk marks the end.
zero chunk ends \text{zero chunk ends} zero chunk ends
Chunked honesty boundary The chunk sizes, decoded body, and terminator checks are recomputed from pinned response bytes. Chunked honesty boundary - GET /stream chunks decode to hi! (3 bytes) section name value check request line method GET parsed request line path /stream parsed request line version HTTP/1.1 parsed header Host api.example exact status version HTTP/1.1 parsed status status 200 OK ok header Transfer-Encoding chunked chunked header Content-Length absent not used chunk 1 size token 2 hex size chunk 1 decimal size 2 converted chunk 1 data display hi safe display form chunk 1 data hex 6869 pinned bytes chunk 1 role data stream part chunk 2 size token 1 hex size chunk 2 decimal size 1 converted chunk 2 data display exclamation mark safe display form chunk 2 data hex 21 pinned bytes chunk 2 role data stream part chunk 3 size token 0 hex size chunk 3 decimal size 0 converted chunk 3 data display end marker safe display form chunk 3 data hex no data pinned bytes chunk 3 role end stream part decoded body display hi! safe display form decoded body exact hex 686921 pinned bytes decoded body byte length 3 counted check first chunk bytes 2 chunk size check second chunk bytes 1 chunk size check decoded body bytes 3 sum check zero chunk ends yes terminator check Content-Length absent absent