- From: Scott Mitchell <scott.k.mitch1@gmail.com>
- Date: Mon, 16 Jan 2017 22:32:16 -0800
- To: HTTP Working Group <ietf-http-wg@w3.org>
- Message-ID: <CAFn2buAYWHQSWhhoKZ2GKbqXR1A+tScjkAwZmOuQ9gV9jMp2bA@mail.gmail.com>
(originally posted here: https://github.com/http2/http2-spec/issues/759) What is the expected result in terms of stream state and any potential errors that should be generated from the following scenario: ``` 1. Client [PRIORITY, id: 5] -> Server 2. Client [HEADERS, id: 3] -> Server ``` ## Option 1 The server accepts both frames. Stream `3` is OPEN and stream `5` remains in IDLE. This behavior is verified in the h2spec verification tool via https://github.com/summerwind/h2spec/pull/67. Also see additional discussion there. ## Option 2 Should the use of stream ID `5` cause stream ID `3` (and all lower stream IDs) to be implicitly closed according to the section-5.1.1 (see [1])? This would mean after the server receives the frame from step (1) it thinks that stream ID `3` has been closed, and when the server receives the frame from step (2) it will respond with a connection error of type PROTOCOL_ERROR (see [2])? [1] https://tools.ietf.org/html/rfc7540#section-5.1.1 > The first use of a new stream identifier implicitly closes all streams in the "idle" state that might have been initiated by that peer with a lower-valued stream identifier. [2] https://tools.ietf.org/html/rfc7540#section-5.1.1 > An endpoint that receives an unexpected stream identifier MUST respond with a connection error (Section 5.4.1) of type PROTOCOL_ERROR.
Received on Tuesday, 17 January 2017 06:32:51 UTC