Re: END_SEGMENT and headers

I remember pretty clearly how the HEADERS frames work w.r.t. continuations
:)

When an entire headers block has been received (i.e. at the point where a
HEADERS frame with END_HEADERS is set), you've received a complete set of
metadata.
This is required to start a stream, but the protocol allows HEADERS later
in a stream, potentially as part of the same message.

Assuming that HEADERS_BLOCK is defined thusly:
HEADERS_BLOCK := (HEADERS)* HEADERS_WITH_END_HEADERS ;

Then a message would be defined as:
MESSAGE :=  HEADERS_BLOCK
            (HEADERS_BLOCK | DATA)*
            (HEADERS_WITH_END_SEGMENT | DATA_WITH_END_SEGMENT)
         ;
Your proposal would not allow this, or am I misunderstanding?
-=R


On Wed, Apr 16, 2014 at 4:36 PM, David Krauss <potswa@gmail.com> wrote:

>
> On 2014–04–17, at 7:33 AM, David Krauss <potswa@gmail.com> wrote:
>
> > a CONTINUATION frame must be preceded on the connection by a HEADERS or
> CONTINUATION frame from the same stream.
>
> To be clear: *immediately* preceded with no intervening frames. Also, a
> DATA frame is not valid until after END_HEADERS which moves to the “open”
> state.
>
>

Received on Wednesday, 16 April 2014 23:46:00 UTC