W3C home > Mailing lists > Public > ietf-http-wg@w3.org > April to June 2013

Re: Design Issue: PUSH_PROMISE and Stream Priority

From: James M Snell <jasnell@gmail.com>
Date: Fri, 26 Apr 2013 00:12:38 -0700
Message-ID: <CABP7Rbekzz=gy25yjp70bwTG4PfEuEkSPzJtP51-sDMdc1dqgA@mail.gmail.com>
To: ChanWilliam(陈智昌) <willchan@chromium.org>, ietf-http-wg@w3.org
My apologies,  i accidentally excluded the list in this reply.
On Apr 26, 2013 12:11 AM, "James M Snell" <jasnell@gmail.com> wrote:

>
> On Apr 25, 2013 10:29 PM, "William Chan (陈智昌)" <willchan@chromium.org>
> wrote:
> >
> > We have not proposed a reprioritization frame since there was some mild
> resistance before at the Tokyo interim meeting, although most of that
> concern was about the larger prioritization proposal and not strictly
> reprioritization. We promised to go get data and come back and report. We
> have not gotten said data yet (it's in progress), so I don't have much to
> report (no data, only status if people are interested. I'm inclined to wait
> until I have data). If reprioritization is not controversial, then we can
> go ahead and propose a frame for that and revisit the rest of the larger
> prioritization proposal when we have data.
> >
>
> Waiting for the data is fine. I'm not opposed to a prioritization frame
> but I worry about creating too many special purpose frame types at too fine
> gained a level. We'll need to be careful.
>
> > As far as the priority being useless to send with push streams, the only
> reason I can see that as being useful is perhaps saving a reprioritization
> frame (meh) or if you have a "smart" server that's doing some learning
> process to decide how to prioritize push streams in absence of client
> information, then perhaps this would allow for informing the client as
> you're learning. That's a weak argument too because you can just log that
> information server side to evaluate your learning process.
> >
> > Actually, if we don't strictly assume HTTP style client initiated
> request/response application protocol semantics, then at the framing layer
> with fully bidirectional streams, the server may be requesting that the
> client send data back to the server according to the server advisory
> priority. That is, since streams are bidirectional, you can imagine servers
> initiating a request/response pair.
> >
>
> This hits the core of the problem.. Are we creating a general purpose
> bidirectional framing protocol that we can layer http onto or are we
> creating a new http based on frames.  If the former, then push stream
> priority may make sense.  If the latter, it could be dangerous and
> completely unnecessary.
>
> For now, let's just say that only client initiated streams have a
> priority. Doing so eliminates many potentially messy issues.  If someone
> wants to experiment with prioritized push streams later on down the road ,
> they can do so.
>
> - James
>
> > Now, as to the push stream priority default, in general for a web
> browsing case, the "parent" stream will be the root document of a page
> load, and the push streams will be subresources, which should generally be
> lower priority than the root document. So I don't think priority
> inheritance is advisable for this scenario, and at least for the HTTP case,
> it's not really important since it's a server-side implementation detail -
> in absence of client advisory priorities, the server just sends streams in
> whatever order it wants. No need to spec a required default or anything,
> let server implementations innovate here. A reprioritization frame would
> enable the client to send advisory priorities here to better inform the
> server. And I would recommend we allow clients to do so.
> >
> >
> >
> >
> > On Thu, Apr 25, 2013 at 7:36 PM, Roberto Peon <grmocg@gmail.com> wrote:
> >>
> >> I am traveling but should be back by Monday. I'll be slow before then
> as I'm having to type in the phone.
> >>
> >> On Apr 25, 2013 6:50 PM, "Martin Thomson" <martin.thomson@gmail.com>
> wrote:
> >>>
> >>> Good point.  The hope was that a reprioritization frame would be
> >>> proposed (Will, Roberto, we're all still waiting).
> >>>
> >>> If that's enough, then adding a default (maybe 2^30) would fix this.
> >>>
> >>> On 25 April 2013 11:03, James M Snell <jasnell@gmail.com> wrote:
> >>> > https://github.com/http2/http2-spec/issues/75
> >>> >
> >>> > The current draft (-02) says, "The endpoint establishing a new stream
> >>> > can assign a priority for the stream."
> >>> >
> >>> > However, the spec does not define how a stream established using
> >>> > PUSH_PROMISE can assign the priority for a stream, nor does the spec
> >>> > discuss whether the notion of stream priority applies to push
> streams.
> >>> >
> >>> > The spec currently states that PUSH_PROMISE is followed later on by a
> >>> > HEADERS frame.
> >>> >
> >>> > If priority applies to push streams, then we need to add that
> priority
> >>> > can be assigned by allowing the use of a HEADERS+PRIORITY frame.
> >>> > Otherwise, we need to clarify the spec text to say that push streams
> >>> > have no priority.
> >>> >
> >>>
> >
>
Received on Friday, 26 April 2013 07:13:06 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 March 2016 11:11:12 UTC