Re: [#150] Making certain settings mandatory

Roberto Peon <grmocg@gmail.com> Sat, 29 June 2013 20:08 UTC

Return-Path: <ietf-http-wg-request@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0E86721F9AF5 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sat, 29 Jun 2013 13:08:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.598
X-Spam-Level:
X-Spam-Status: No, score=-10.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id KYDhZ8Zte+ur for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sat, 29 Jun 2013 13:08:32 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 91B0A21F8FBE for <httpbisa-archive-bis2Juki@lists.ietf.org>; Sat, 29 Jun 2013 13:08:32 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1Ut1QY-0006dZ-Kq for ietf-http-wg-dist@listhub.w3.org; Sat, 29 Jun 2013 20:07:22 +0000
Resent-Date: Sat, 29 Jun 2013 20:07:22 +0000
Resent-Message-Id: <E1Ut1QY-0006dZ-Kq@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <grmocg@gmail.com>) id 1Ut1QK-0006bd-Kd for ietf-http-wg@listhub.w3.org; Sat, 29 Jun 2013 20:07:08 +0000
Received: from mail-oa0-f41.google.com ([209.85.219.41]) by lisa.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <grmocg@gmail.com>) id 1Ut1QJ-0000Wa-MW for ietf-http-wg@w3.org; Sat, 29 Jun 2013 20:07:08 +0000
Received: by mail-oa0-f41.google.com with SMTP id n10so3552559oag.14 for <ietf-http-wg@w3.org>; Sat, 29 Jun 2013 13:06:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=2sRMgnYyDn8smmcW7l+EWojvmZcZMwKmMMEbu4oMWZs=; b=KXO55bPxpi6Cg4dTRPFBV4ae34s1qImrhOJ1gh/ZP4qg2MaMxpmMDbSsxmnRap9l41 DKM/4Y+C4qphX+VJE8Y7uDzNHmFTNI9euwJ2jlIOQaKflc8RVuYQOmL84JOcD7DEGdab lUEZ7LmCL7npqR1jvYJoJPsW4wov1EFbKAe+efH+VWfb519SIsQOkhQ6s9go937KBHUR xdlemFdSLO6b3yMd7RsXhGCiObPRarBepFTxDz18P6uO1zufDsf+y4D2bkSpmgCm/Mk7 rUAgJMSiACX3/R2KHCR+vLklg1O/B0ZWBRSKG2Cq8FWrAYyvZrbkQDdtccictJdSxnkk U2Aw==
MIME-Version: 1.0
X-Received: by 10.60.52.16 with SMTP id p16mr7329355oeo.29.1372536401676; Sat, 29 Jun 2013 13:06:41 -0700 (PDT)
Received: by 10.76.91.229 with HTTP; Sat, 29 Jun 2013 13:06:41 -0700 (PDT)
In-Reply-To: <CA+pLO_iEcHBxvXed+=wh5FpTLcu=c5Rr78Wo9WQvnEx6yJ40Jw@mail.gmail.com>
References: <CABkgnnW2xi3pAKyg2Abi15Gb11ZCFi+D_QUQw1566BVXb65iHg@mail.gmail.com> <CABaLYCs8vb35CoL+A4mh7-PkbnKXxjz+jCJ_z-ivzYnYKF=VWQ@mail.gmail.com> <CA+pLO_gFrAow2==sZx8_57Hw81d24V4HaqJCEc63WhZSAoWdBA@mail.gmail.com> <CAP+FsNd9dVzRBv1iXS59XQEkk32rK9EtfQs=c1rp+yYHSbG5dQ@mail.gmail.com> <CA+pLO_ijfgbkYEKXn3xUq5-Kxw69k4oQhMc8+fL5tTtenN2x3A@mail.gmail.com> <CAP+FsNfO140h4UgS55P6Ouj2vEc7ZCZzGTBOWRD7+1DigRNUMw@mail.gmail.com> <CA+pLO_hpmFbDNyaPgi3JhtRSdKnTEGsv0_NXxL2BTJfUJ4xStw@mail.gmail.com> <CAP+FsNeq+xUKjVU3uLFGy-2uozErq5fbJ20bD85zNvz=PHJqSQ@mail.gmail.com> <CA+pLO_iEcHBxvXed+=wh5FpTLcu=c5Rr78Wo9WQvnEx6yJ40Jw@mail.gmail.com>
Date: Sat, 29 Jun 2013 13:06:41 -0700
Message-ID: <CAP+FsNf1n4byQ8ip=HR3y2e-Obyr22GbnGUFBS5nExcYW_q57A@mail.gmail.com>
From: Roberto Peon <grmocg@gmail.com>
To: Jeff Pinner <jpinner@twitter.com>
Cc: Mike Belshe <mike@belshe.com>, Martin Thomson <martin.thomson@gmail.com>, HTTP Working Group <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="001a11330b22a9cdab04e050880a"
Received-SPF: pass client-ip=209.85.219.41; envelope-from=grmocg@gmail.com; helo=mail-oa0-f41.google.com
X-W3C-Hub-Spam-Status: No, score=-3.5
X-W3C-Hub-Spam-Report: AWL=-2.677, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001
X-W3C-Scan-Sig: lisa.w3.org 1Ut1QJ-0000Wa-MW 6a586895b7d84b7bb32c274854bf4066
X-Original-To: ietf-http-wg@w3.org
Subject: Re: [#150] Making certain settings mandatory
Archived-At: <http://www.w3.org/mid/CAP+FsNf1n4byQ8ip=HR3y2e-Obyr22GbnGUFBS5nExcYW_q57A@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/18426
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

I think we could, but we'll need to send the settings frame in the future
when we decide that those defaults need changing.

-=R


On Sat, Jun 29, 2013 at 12:47 PM, Jeff Pinner <jpinner@twitter.com> wrote:

> So devil's advocate -- why make the mandatory during Upgrade?
>
> If the client is upgrading to HTTP/2.0 and doesn't send them, why can't we
> just assume that the client has accepted the default values?
>
>
> On Sat, Jun 29, 2013 at 12:41 PM, Roberto Peon <grmocg@gmail.com> wrote:
>
>> This is why it seems like this doesn't make sense to me- we're proposing
>> to tear down the connection for an error which neither causes corruption,
>> nor causes state mismatch.
>>
>> This also does nothing to reduce complexity. We've moved a conditional
>> from the startup, which is already special in the first place (the magic
>> string) to elsewhere, while requiring more bytes on the wire and more ways
>> to randomly/accidentally tear down the connection.
>> This requirement also does nothing to simplify the parsing of the
>> settings frame, as it might contain other settings, especially in the
>> future.
>>
>> -=R
>>
>>
>> On Sat, Jun 29, 2013 at 12:31 PM, Jeff Pinner <jpinner@twitter.com>wrote:
>>
>>> If it's a MUST and the required settings aren't there you'd have to
>>> close down the connection, same way you would for any other badly formatted
>>> frame that you couldn't interpret.
>>>
>>>
>>> On Sat, Jun 29, 2013 at 12:30 PM, Roberto Peon <grmocg@gmail.com> wrote:
>>>
>>>> Again, what happens when the required settings are not in the frame?
>>>>
>>>>
>>>> On Sat, Jun 29, 2013 at 12:20 PM, Jeff Pinner <jpinner@twitter.com>wrote:
>>>>
>>>>> If you don't want them to be mandatory then don't make them mandatory
>>>>> as part of the Upgrade mechanism and rely on the defaults if you choose to
>>>>> upgrade without including them.
>>>>>
>>>>> Consistency :)
>>>>>
>>>>>
>>>>> On Sat, Jun 29, 2013 at 12:16 PM, Roberto Peon <grmocg@gmail.com>wrote:
>>>>>
>>>>>> Ug. Slippery slope.
>>>>>> I'm happy to say the settings frame is mandatory, you SHOULD send
>>>>>> settings you care about in the initial settings frame, and otherwise you
>>>>>> get what you get.
>>>>>>
>>>>>> This is less complicated. What would be the result of not having the
>>>>>> mandatory fields in the settings frame as proposed above? If it isn't
>>>>>> 'close down the connection', the requirement is useless.
>>>>>>
>>>>>> -=R
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Sat, Jun 29, 2013 at 12:03 PM, Jeff Pinner <jpinner@twitter.com>wrote:
>>>>>>
>>>>>>> +1 To consistent handling of frames, whatever the rules are.
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Jun 27, 2013 at 11:05 AM, Mike Belshe <mike@belshe.com>wrote:
>>>>>>>
>>>>>>>> I believe the bytes are completely inconsequential.
>>>>>>>>
>>>>>>>> My goal with this was to make it so there is only one set of rules
>>>>>>>> for SETTINGS frames.  Currently, there is the "oh this is the first
>>>>>>>> settings frame rules".
>>>>>>>>
>>>>>>>> This is not going to have impact on performance, but removing edge
>>>>>>>> cases is desirable to me.
>>>>>>>>
>>>>>>>> Mike
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thu, Jun 27, 2013 at 10:27 AM, Martin Thomson <
>>>>>>>> martin.thomson@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> This pull request proposes to make two settings mandatory in every
>>>>>>>>> SETTINGS frame: SETTINGS_MAX_CONCURRENT_STREAMS and
>>>>>>>>> SETTINGS_INITIAL_WINDOW_SIZE.
>>>>>>>>>
>>>>>>>>> https://github.com/http2/http2-spec/pull/150
>>>>>>>>>
>>>>>>>>> Gabriel's proposal for an HTTP/1.1 header for carrying settings in
>>>>>>>>> the
>>>>>>>>> Upgrade made these mandatory only at that point, which didn't cover
>>>>>>>>> the TLS handshake, or just starting from prior knowledge.
>>>>>>>>>
>>>>>>>>> Two questions:
>>>>>>>>>  - Do we want to make any settings mandatory, or are defaults
>>>>>>>>> acceptable?
>>>>>>>>>  - Is this the right trade-off? Or are the 16 bytes on subsequent
>>>>>>>>> SETTINGS frames completely intolerable.
>>>>>>>>>
>>>>>>>>> Note that if we make these settings mandatory, there might be other
>>>>>>>>> settings in the future that will also be mandatory; e.g., the
>>>>>>>>> compression context size.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>