Re: END_SEGMENT and headers

On 2014–04–17, at 7:45 AM, Roberto Peon <grmocg@gmail.com> wrote:

> MESSAGE :=  HEADERS_BLOCK
>             (HEADERS_BLOCK | DATA)*

Ah, I did not realize this.

> Your proposal would not allow this, or am I misunderstanding?

When you said “metadata”, I thought you meant segmentation as the means of separating it, not headers as a general metadata transport.

However:

1. How is the server supposed to make late headers available to the application? They get coalesced with and replace earlier headers? What does the client-side interface look like?

2. Without segmentation, how does an application know that the headers are forwarded by an intermediary before some subsequent data that expects them? It seems that END_SEGMENT must be used with END_HEADERS anyway because otherwise a race condition is allowed to delay the headers. Either that, or END_HEADERS must imply END_SEGMENT behavior. Either way is already equivalent to my proposal. So although I am (unintentionally) proposing to disallow some valid sequences according to the protocol, they only represent unsafe practices.

Received on Thursday, 17 April 2014 00:04:58 UTC