enum Kind {
Length(u64),
Chunked {
state: ChunkedState,
chunk_len: u64,
extensions_cnt: u64,
},
Eof(bool),
}
Variants§
Length(u64)
A Reader used when a Content-Length header is passed with a positive integer.
Chunked
A Reader used when Transfer-Encoding is chunked
.
Eof(bool)
A Reader used for responses that don’t indicate a length or chunked.
The bool tracks when EOF is seen on the transport.
Note: This should only used for Response
s. It is illegal for a
Request
to be made with both Content-Length
and
Transfer-Encoding: chunked
missing, as explained from the spec:
If a Transfer-Encoding header field is present in a response and the chunked transfer coding is not the final encoding, the message body length is determined by reading the connection until it is closed by the server. If a Transfer-Encoding header field is present in a request and the chunked transfer coding is not the final encoding, the message body length cannot be determined reliably; the server MUST respond with the 400 (Bad Request) status code and then close the connection.