FYI: I am busy hacking away at the separation between our HTTP and HTTP/1.x handling code. I'll make a PR once all tests have passed, so we can talk about the changes.
The goals are pretty simple: 1. have mod_http focus on HTTP semantics, header checks, ap_die conversions, not chunking and CRLFs. 2. have a mod_http1 that installs TRANSCODE filters when the connection is h1. those do the chunking and the header serialization. 3. Have interim responses that send META buckets, not DATA to the transcode filters. No content filter will be confused by those. 4. Pass FOOTERS in/out as META buckets in a similar way. The main idea is to introduce a META "HEADERS" bucket that is used for final/interim responses and footers as well. This will safely pass through all filters that do not know about it. This is similar to the ERROR bucket type we already have. It will eliminate the remaining code duplications in mod_http2, make it leaner and use the standard HTTP filters just like for HTTP/1.x requests. Also, h2 will no longer need to parse interim responses back into header tables or deal with chunked encodings. Kind Regards, Stefan