> On Jan 24, 2022, at 6:53 AM, Stefan Eissing <ste...@eissing.org> wrote:
> 
> 
> 
>> Am 24.01.2022 um 15:40 schrieb Yann Ylavic <ylavic....@gmail.com 
>> <mailto:ylavic....@gmail.com>>:
>> 
>> On Mon, Jan 24, 2022 at 3:28 PM Stefan Eissing <ste...@eissing.org 
>> <mailto:ste...@eissing.org>> wrote:
>>> 
>>> 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.
>> 
>> Looking forward to seeing it ;)
> 
> 🙈
> 
>> 
>>> 
>>> 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.
>> 
>> There are some assumptions in httpd (and possibly third-party modules)
>> that meta buckets have a no length, so if "HEADERS" buckets have one
>> you might need to embed it in the bucket->data struct..
> 
> Yes, it's 0 length like ERROR and has a struct as that holds:
> - int status, opt 0 
> - const char *reason, opt NULL
> - apr_table_t *headers
> - apr_table_t *notes
> 
> on responses, shallow copied from the request_rec, etc.
> 
> The nice thing is that the HTTP/1.x transcode out filter can
> now check in one place that
> - there is indeed a HEADERS before data buckets
> - there is only one HEADERS with status >= 200
> 
> And "above" the transcode layer, a data bucket is content, period.

And trailers can be implemented this way too, right?

....Roy

Reply via email to