trillium-http-v1.3.6
·
14 commits
to main
since this release
The theme of this release is improved HTTP/2 flow control, informed by in-the-wild peer behavior.
Changed
- The default HTTP/2 initial stream receive window (
HttpConfig::h2_initial_stream_window_size) is
now 256 KiB, up from 0. A server accepts a request body up to this size on a newly-opened stream
before the handler starts reading it; the previous default of 0 required the client to wait for
the server to begin reading, which some peers never did, hanging the request. The window grows
toh2_max_stream_recv_window_sizeonce the handler reads the body. - HTTP/2 receive flow control is now enforced strictly: a client that sends more request-body data
than the window it was granted is disconnected with aFLOW_CONTROL_ERROR(previously such
overruns were tolerated). Ifh2_max_stream_recv_window_sizeis configured below
h2_initial_stream_window_sizeit is raised to match it, with a warning logged.