RE: #40 - HTTP2 default value for client supported max_concurrent_streams

“where the server wants”

There’s two parties in this dance, and it takes both to want to do it. If a client wants at some point to not be fired upon strictly more than it requests for (perhaps because it is low on batteries or is very close to its monthly data allowance or because it just plain doesn’t feel like it), than a server inlining a bunch of stuff is like it shooting at the client. From the point of view of the client, getting fired at hurts. The client can very well decide never again to use such servers.

If the server does not inline but instead uses the new fancy push capability, it might be friendlier fire, but getting fired at even if it’s “friendly” fire hurts just the same.

Catering to the server’s wishes is fine and dandy, but that is only one part of the equation. I guess I’m a bit more optimistic in that I hope it will become possible for clients not to be fired at, instead of just changing from one type of fire to another.

From: willchan@google.com [mailto:willchan@google.com] On Behalf Of William Chan (???)
Sent: Saturday, 23 February, 2013 07:09
To: Amos Jeffries
Cc: HTTP Working Group
Subject: Re: #40 - HTTP2 default value for client supported max_concurrent_streams

Sorry, I did not explicitly state a conditional that I thought was implicitly understood.

*In situations where the server wants to push resources*, if the majority of clients disable HTTP/2 stream push, then servers will simply inline resources instead.

You're right that push can always be abused. But in situations that it makes sense to push, it's better to use HTTP/2's push facility than to inline resources. And we should ensure that the push mechanism remains viable, otherwise servers will just inline in those situations.

On Sat, Feb 23, 2013 at 3:03 AM, Amos Jeffries <squid3@treenet.co.nz<mailto:squid3@treenet.co.nz>> wrote:
On 23/02/2013 10:29 a.m., William Chan (陈智昌) wrote:
Let's be careful about this issue, because as we've noted many times before, if the server can't leverage HTTP/2 to push streams, it is likely to just inline resources directly, which is definitely worse. Fundamentally, when the client issues a request, the server can send anything it wants in the response. Defaulting to 0 would most likely incentivize servers to to just inline resources, which is probably worse than sending push streams to clients which don't want it (I assert that in the open web, this should be a minority. If not, then HTTP/2 stream pushing will have failed and people will just inline resources).

Sorry I just parsed that as a re-wording of "if it turns out the majority of clients disable push we can consider it failed and servers will just do it via inlining anyway."

If that is the case, why are sites not already inlining _all_ of their page content and pushing it on first contact from any client. The answer should be obvious that it is a waste of resources for both client and server to do this at all on any large scale. Although, that said I'm still fielding questions about how to pre-cache entire sites like facebook and google :-( there will always be idiots whatever gets specified.

Amos

On Fri, Feb 22, 2013 at 1:02 PM, Gabriel Montenegro <Gabriel.Montenegro@microsoft.com<mailto:Gabriel.Montenegro@microsoft.com> <mailto:Gabriel.Montenegro@microsoft.com<mailto:Gabriel.Montenegro@microsoft.com>>> wrote:

    There is harm borne by the unwilling client receiver: battery and
    data allowance are not free.
    *From:*Roberto Peon [mailto:grmocg@gmail.com<mailto:grmocg@gmail.com>
    <mailto:grmocg@gmail.com<mailto:grmocg@gmail.com>>]
    *Sent:* Friday, 22 February, 2013 08:24
    *To:* Martin Thomson
    *Cc:* Osama Mazahir; ietf-http-wg@w3.org<mailto:ietf-http-wg@w3.org>
    <mailto:ietf-http-wg@w3.org<mailto:ietf-http-wg@w3.org>> Group
    *Subject:* Re: #40 - HTTP2 default value for client supported

    max_concurrent_streams

    Yup, I understand that part. :)

    I'm doing a poor job of pointing out that any harm done by doing
    something like this is borne by the party doing it.

    ... so why mandate it-- if there turns out to be a positive
    benefit of doing such a push in the future, fine.

    I guess I'm attempting to argue that, unless we can figure out how
    this causes harm/is likely to be done accidentally and cause
    issues, then it is better to not say anything about it. Saying
    something about it creates a spec with is more fragile.

    -=R

    On Fri, Feb 22, 2013 at 8:19 AM, Martin Thomson
    <martin.thomson@gmail.com<mailto:martin.thomson@gmail.com> <mailto:martin.thomson@gmail.com<mailto:martin.thomson@gmail.com>>> wrote:

        On 22 February 2013 05:29, Roberto Peon <grmocg@gmail.com<mailto:grmocg@gmail.com>
        <mailto:grmocg@gmail.com<mailto:grmocg@gmail.com>>> wrote:
        > What is the motivation for that?

        I'm not suggesting that this is Osama's motivation, but look
        at the
        Upgrade scenario: the server is the first to send on the HTTP/2.0
        session with a response. There's an obvious opportunity there
        to push
        prior to the client SETTINGS frame arriving. The TLS scenario
        is less
        interesting - the client sends SETTINGS prior to any request,
        making
        defaults non-interesting.

Received on Sunday, 24 February 2013 01:23:37 UTC