Subject: [quicwg/base-drafts] "Push Stream Header" term and carriage (#950)

From: Lucas Pardue <[email-masked]>
Date: Tue, 21 Nov 2017 13:34:43 +0000 (UTC)

HTTP/QUIC section 4.4 says:

> A push stream is a server-initiated, unidirectional stream. A push stream includes a header (see Figure 1) that identifies the PUSH_PROMISE that it fulfills. This header consists of a Push ID, encoded as a variable-length integer. The Push ID identifies a server push (see Section 5.2.6).

I'm finding the term push stream header a little obtuse because it isn't a QUIC frame header, an HTTP header, nor an HPACK header-block, and all of those are in scope for a push. Since it could just be me, I don't have any alternatives to suggest at this stage.

I think what the text is saying is that a push stream is a sequence of QUIC STREAM frames, the first frame must contain the push stream header directly. In other words, there is no additional HTTP/QUIC framing for this (although I do wonder if an INITIATE_PUSH frame, that includes the Push ID might be way more explicit (at the cost of framing overhead)).

> After the push stream header, a push contains a response (Section 4.2), with response headers, a response body (if any) carried by DATA frames, then trailers (if any) carried by HEADERS frames.

For clarity, I wonder if it might be better to say:

_After the push stream header, a push contains a response (Section 4.2), with response header fields carried by HEADERS frames, a response body (if any) carried by DATA frames, then trailer fields (if any) carried by HEADERS frames._

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/950

---

From: Mike Bishop <[email-masked]>
Date: Tue, 21 Nov 2017 22:26:40 +0000 (UTC)

Let's back up a second.  QUIC streams are bytestreams as far as the application is concerned.  It has no knowledge or dependency on how the bytestream is segmented for transport.  So the sequence of bytes on the stream is:

  - Stream header (only for push streams at the moment, might expand)
  - HTTP/QUIC Frames

In Martin's original unidirectional proposal, all streams had stream headers identifying the type of stream.  Currently only push streams have them, but a reasonable argument can be made for putting them on the control stream as well.  They're probably necessary if the header compression algorithm has its own control channels, too, so you can differentiate between types of unidirectional streams.

Once the dust settles on that, I'll probably reorganize to describe that the header exists on unidirectional streams, followed by a sequence of frames to the end of the stream.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/950#issuecomment-346181790

---

From: Lucas Pardue <[email-masked]>
Date: Wed, 22 Nov 2017 15:58:31 +0000 (UTC)

Right, thanks for me reminding me of that unidirectional PR. I can see now the bits that were migrated over. The confusing bits in the current HTTP/QUIC doc (from my perspective) are the absence of generic definition of what a stream header is (hard when there is just one and it only contains one field), and the overloading of Push ID for different uses. 

With a better understanding of the area, I think some of the problem would be alleviated with some restructure of section 4.4 and 5.2.6 as described on #948.

The rest is resolvable once the dust settles as you say. I have no strong opinion on if this ticket should be kept open or closed.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/950#issuecomment-346393487

---

From: Lucas Pardue <[email-masked]>
Date: Fri, 24 Nov 2017 10:53:21 +0000 (UTC)

I think @martinthomson intended to close this ticket with #957 (looks like GH failed to do it automatically).

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/950#issuecomment-346800993

---

From: Martin Thomson <[email-masked]>
Date: Fri, 24 Nov 2017 20:42:20 +0000 (UTC)

Closed #950.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/950#event-1357583665