Subject: Frames and State Machine

From: Mike Bishop <[email-masked]>
Date: Tue, 2 Dec 2014 18:36:20 +0000

If I recall correctly, we chose not to define the semantics of PRIORITY from server to client.  However, the state machine of what frames are acceptable in what states support the following:

*        Sending PRIORITY in "reserved (local)" (a server-only state)

*        Receiving PRIORITY in "reserved (remote)" (a client-only state)

*        Receiving PRIORITY in "half closed (local)" (a primarily-client state, unless the server responds before the request body has completed)

*        More generally, there's a note that PRIORITY can be sent or received in any stream state, presumably added as part of allowing prioritization of idle streams.

Should we allow sending/receiving PRIORITY frames of undefined semantics?  This seems like something to be cleaned up, either by prohibiting (my preference) or by including the semantics in the spec.

And, as a side-note, the current text allows PUSH_PROMISE to be sent on idle streams, which I don't think was ever the intent.  I submitted a pull request for this at https://github.com/http2/http2-spec/pull/665/files#diff-8894168382f6487e5e38c4306e613a88, because I think it's just an outright typo, but mentioning it on-list in case anyone disagrees.

---

From: Martin Thomson <[email-masked]>
Date: Tue, 2 Dec 2014 11:02:04 -0800

On 2 December 2014 at 10:36, Mike Bishop <[email-masked]> wrote:
> And, as a side-note, the current text allows PUSH_PROMISE to be sent on idle
> streams, which I don’t think was ever the intent.  I submitted a pull
> request for this at
> https://github.com/http2/http2-spec/pull/665/files#diff-8894168382f6487e5e38c4306e613a88,
> because I think it’s just an outright typo, but mentioning it on-list in
> case anyone disagrees.

Yes, this is an error.