Re: [#150] Making certain settings mandatory

Jeff Pinner <jpinner@twitter.com> Sat, 29 June 2013 19:49 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 2927B21F9F6F for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sat, 29 Jun 2013 12:49:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.976
X-Spam-Level:
X-Spam-Status: No, score=-9.976 tagged_above=-999 required=5 tests=[AWL=-0.000, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, 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 rBESgw40-aSF for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sat, 29 Jun 2013 12:49:04 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 21E5A21F9FFF for <httpbisa-archive-bis2Juki@lists.ietf.org>; Sat, 29 Jun 2013 12:48:52 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1Ut18E-0006re-AI for ietf-http-wg-dist@listhub.w3.org; Sat, 29 Jun 2013 19:48:26 +0000
Resent-Date: Sat, 29 Jun 2013 19:48:26 +0000
Resent-Message-Id: <E1Ut18E-0006re-AI@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <jpinner@twitter.com>) id 1Ut180-0006q1-A2 for ietf-http-wg@listhub.w3.org; Sat, 29 Jun 2013 19:48:12 +0000
Received: from mail-oa0-f49.google.com ([209.85.219.49]) by lisa.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <jpinner@twitter.com>) id 1Ut17z-00087n-94 for ietf-http-wg@w3.org; Sat, 29 Jun 2013 19:48:12 +0000
Received: by mail-oa0-f49.google.com with SMTP id n9so3472226oag.22 for <ietf-http-wg@w3.org>; Sat, 29 Jun 2013 12:47:45 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=twitter.com; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=XGlxS7KpRv4q1lhDoSN11MZu9vI9zmVZEWvxXeAfjSY=; b=CTghqCodw65VGbeYGoRmaNxNZ8RFg4feKkkay3hXTHHaVoLvelSB0ZmD6jHbIwKkvV qoWhkLis7QVXVDuZM0FsDNp2rSftmwnYrmputkZDFKFujj/LKwOkB37wl8+cdqNMInQ3 vFA1twM7XrWbiCyu/X8gUUZFyMvBCYVWLCWuk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:x-gm-message-state; bh=XGlxS7KpRv4q1lhDoSN11MZu9vI9zmVZEWvxXeAfjSY=; b=WjIFcjGxMH0ZqfRSo5uKGnPh8zwl5ujZscvVDsGaTnP34H6BYMlNR/6s59Q4LYR90A vW0aCIsx261Sj5T6zyasptMVBgTb+exzp1Pdbh+Cm0pow/s1Zu89nmyFBm/PJ7VBqrEd 7n8YmhXK3Tkpb7JqugWSuJUtnu4DIe4+UDfXe+D50MqN9W973Wj8vDMTqtdU+BRGdjMe rbIy7qFz5jy161VFTlfi3OrRsAteOMOVailFg72bvHqBm3ax0lruz/IkCdGsJTibenEG l7mIs3VFII8UJ49IhJ98DYH45nT7K1nYgnSpBrUSWfR/GNuwKDqrCtcOLagNH1jlcVLe gCvQ==
MIME-Version: 1.0
X-Received: by 10.60.131.171 with SMTP id on11mr7295523oeb.71.1372535265184; Sat, 29 Jun 2013 12:47:45 -0700 (PDT)
Received: by 10.182.7.37 with HTTP; Sat, 29 Jun 2013 12:47:45 -0700 (PDT)
In-Reply-To: <CAP+FsNeq+xUKjVU3uLFGy-2uozErq5fbJ20bD85zNvz=PHJqSQ@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>
Date: Sat, 29 Jun 2013 12:47:45 -0700
Message-ID: <CA+pLO_iEcHBxvXed+=wh5FpTLcu=c5Rr78Wo9WQvnEx6yJ40Jw@mail.gmail.com>
From: Jeff Pinner <jpinner@twitter.com>
To: Roberto Peon <grmocg@gmail.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="047d7b471da4ec5aef04e0504408"
X-Gm-Message-State: ALoCoQn53WQ4vQZvPn0jZdMrgoxuyYICZMv3Q+Qx2fu8Ja0Nbtd79xtJoOgqRLLS7y9hAUujhW59
Received-SPF: pass client-ip=209.85.219.49; envelope-from=jpinner@twitter.com; helo=mail-oa0-f49.google.com
X-W3C-Hub-Spam-Status: No, score=-3.6
X-W3C-Hub-Spam-Report: AWL=-2.800, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001
X-W3C-Scan-Sig: lisa.w3.org 1Ut17z-00087n-94 ae0d129425c59f8b8c183b045ada50bf
X-Original-To: ietf-http-wg@w3.org
Subject: Re: [#150] Making certain settings mandatory
Archived-At: <http://www.w3.org/mid/CA+pLO_iEcHBxvXed+=wh5FpTLcu=c5Rr78Wo9WQvnEx6yJ40Jw@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/18425
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>

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.
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>