Subject: PUSH_PROMISE associated stream

From: Daniel Sommermann <[email-masked]>
Date: Mon, 10 Mar 2014 14:46:13 -0700

From 6.6 PUSH_PROMISE:

PUSH_PROMISE frames MUST be associated with an existing, peer-initiated 
stream. If the stream identifier field specifies the value 0x0, a 
recipient MUST respond with a connection error (Section 5.4.1 
<http://http2.github.io/http2-spec/index.html#ConnectionErrorHandler>) 
of type PROTOCOL_ERROR 
<http://http2.github.io/http2-spec/index.html#PROTOCOL_ERROR>.

Is this a vestigial carry-over from SPDY? I don't see an 
"Associated-To-Stream-ID" field in PUSH_PROMISE. At first glance, it 
looks like HTTP/2 does away with requirement that a pushed resource be 
associated with a client-initiated stream.

---

From: Johnny Graettinger <[email-masked]>
Date: Mon, 10 Mar 2014 18:17:00 -0400

Hi Daniel,

I believe the associated stream ID of PUSH_PROMISE is conveyed as the
stream ID in the common frame
header<http://http2.github.io/http2-spec/#FrameHeader>
.

On Mon, Mar 10, 2014 at 5:46 PM, Daniel Sommermann <[email-masked]> wrote:

> stream. If the stream identifier field specifies the value 0x0, a recipient
> MUST respond with a connection error (Section 5.4.1<http://http2.github.io/http2-spec/index.html#ConnectionErrorHandler>)
> of type PROTOCOL_ERROR<http://http2.github.io/http2-spec/index.html#PROTOCOL_ERROR>
> .
>
> "Associated-To-Stream-ID" field in PUSH_PROMISE. At first glance, it looks
> like HTTP/2 does away with requirement that a pushed resource be associated
> with a client-initiated stream.
>

---

From: Jeff Pinner <[email-masked]>
Date: Mon, 10 Mar 2014 15:18:40 -0700

The stream-id of the PUSH_PROMISE frame is the existing, peer-initiated
stream (the associated-to-stream-id in SPDY).
The promised-stream-id is the id of the to-be-initiated pushed stream (the
stream-id in pushed SYN_STREAM frame in SPDY).

---

From: Daniel Sommermann <[email-masked]>
Date: Mon, 10 Mar 2014 15:32:15 -0700

Thanks for the clarification. The second sentence makes  a lot more 
sense in that context. Would anyone mind if I submit a pull request to 
make this fact explicit in the first sentence I quoted?

On 03/10/2014 03:18 PM, Jeff Pinner wrote:
> The stream-id of the PUSH_PROMISE frame is the existing, 
> peer-initiated stream (the associated-to-stream-id in SPDY).
> The promised-stream-id is the id of the to-be-initiated pushed stream 
> (the stream-id in pushed SYN_STREAM frame in SPDY).
>
>
> On Mon, Mar 10, 2014 at 2:46 PM, Daniel Sommermann <[email-masked] 
> <mailto:[email-masked]>> wrote:
>
>     From 6.6 PUSH_PROMISE:
>
>     PUSH_PROMISE frames MUST be associated with an existing,
>     peer-initiated stream. If the stream identifier field specifies
>     the value 0x0, a recipient MUST respond with a connection error
>     (Section 5.4.1
>     "Associated-To-Stream-ID" field in PUSH_PROMISE. At first glance,
>     it looks like HTTP/2 does away with requirement that a pushed
>     resource be associated with a client-initiated stream.
>
>

---

From: Roberto Peon <[email-masked]>
Date: Mon, 10 Mar 2014 15:35:42 -0700

I haven't known anyone to get upset about receiving pull requests that make
things more clear :)
-=R

On Mon, Mar 10, 2014 at 3:32 PM, Daniel Sommermann <[email-masked]> wrote:

>  Thanks for the clarification. The second sentence makes  a lot more sense
> in that context. Would anyone mind if I submit a pull request to make this
> fact explicit in the first sentence I quoted?
>
>
> On Mon, Mar 10, 2014 at 2:46 PM, Daniel Sommermann <[email-masked]>wrote:
>
>>  From 6.6 PUSH_PROMISE:
>>