The body begins after the blank line.

highlighted = computed this step

A blank line ends the headers

The model splits the response at the header-body boundary before reading the body text.

split headers from body\text{split headers from body}
Body boundaryThe response rows, body rows, and length check are recomputed from pinned bytes.Body boundary - 200 OK body hello is 5 bytes, Content-Length 5sectionnamevaluecheckrequest linemethodGETparsedrequest linepath/hello.txtparsedrequest lineversionHTTP/1.1parsedheaderHoststatic.exampleexactheaderAccepttext/plainexactstatusversionHTTP/1.1parsedstatusstatus200 OKokheaderContent-Typetext/plainexactheaderContent-Length5declared bytesbodytexthelloafter blank linebodyhex68656c6c6fASCII bytesbodybyte length5countedcheckContent-Length5declaredcheckbody bytes5recomputedcheckmatchyessame number

The body starts after the boundary

The body row says the text after the boundary is hello.

body=hello\text{body}=\text{hello}
Body boundaryThe response rows, body rows, and length check are recomputed from pinned bytes.Body boundary - 200 OK body hello is 5 bytes, Content-Length 5sectionnamevaluecheckrequest linemethodGETparsedrequest linepath/hello.txtparsedrequest lineversionHTTP/1.1parsedheaderHoststatic.exampleexactheaderAccepttext/plainexactstatusversionHTTP/1.1parsedstatusstatus200 OKokheaderContent-Typetext/plainexactheaderContent-Length5declared bytesbodytexthelloafter blank linebodyhex68656c6c6fASCII bytesbodybyte length5countedcheckContent-Length5declaredcheckbody bytes5recomputedcheckmatchyessame number

The body also has exact bytes

The body hex row comes from the same bytes as the text row.

body bytes parsed\text{body bytes parsed}
Body boundaryThe response rows, body rows, and length check are recomputed from pinned bytes.Body boundary - 200 OK body hello is 5 bytes, Content-Length 5sectionnamevaluecheckrequest linemethodGETparsedrequest linepath/hello.txtparsedrequest lineversionHTTP/1.1parsedheaderHoststatic.exampleexactheaderAccepttext/plainexactstatusversionHTTP/1.1parsedstatusstatus200 OKokheaderContent-Typetext/plainexactheaderContent-Length5declared bytesbodytexthelloafter blank linebodyhex68656c6c6fASCII bytesbodybyte length5countedcheckContent-Length5declaredcheckbody bytes5recomputedcheckmatchyessame number

Summary

The response is status line, headers, blank line, then body bytes.

body boundary found\text{body boundary found}
Body boundaryThe response rows, body rows, and length check are recomputed from pinned bytes.Body boundary - 200 OK body hello is 5 bytes, Content-Length 5sectionnamevaluecheckrequest linemethodGETparsedrequest linepath/hello.txtparsedrequest lineversionHTTP/1.1parsedheaderHoststatic.exampleexactheaderAccepttext/plainexactstatusversionHTTP/1.1parsedstatusstatus200 OKokheaderContent-Typetext/plainexactheaderContent-Length5declared bytesbodytexthelloafter blank linebodyhex68656c6c6fASCII bytesbodybyte length5countedcheckContent-Length5declaredcheckbody bytes5recomputedcheckmatchyessame number