Re: Design Issue: Separate HEADERS and PRIORITY Frames, Eliminate HEADERS+PRIORITY

Jeff Pinner <jpinner@twitter.com> Sun, 26 May 2013 14:33 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 50AA721F8EA6 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 26 May 2013 07:33:22 -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 HSEYxjOUmqu6 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 26 May 2013 07:33:17 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id EC38C21F8551 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Sun, 26 May 2013 07:33:16 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1Ugbzm-0003c5-R1 for ietf-http-wg-dist@listhub.w3.org; Sun, 26 May 2013 14:32:26 +0000
Resent-Date: Sun, 26 May 2013 14:32:26 +0000
Resent-Message-Id: <E1Ugbzm-0003c5-R1@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 1UgbzZ-0003aw-TM for ietf-http-wg@listhub.w3.org; Sun, 26 May 2013 14:32:13 +0000
Received: from mail-ob0-f172.google.com ([209.85.214.172]) by lisa.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <jpinner@twitter.com>) id 1UgbzV-0005Xv-FG for ietf-http-wg@w3.org; Sun, 26 May 2013 14:32:13 +0000
Received: by mail-ob0-f172.google.com with SMTP id tb18so7193815obb.3 for <ietf-http-wg@w3.org>; Sun, 26 May 2013 07:31:43 -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=1z5mk7asWaNM+P59MDWjFwoKINjD4qHtnV3S1RhWuLE=; b=J4RvWeyo+ryozUT8da3J6BPV3/tiXPnorGfxAzbdq+iCa6HHrNG0ykHoS0rt6/QCB3 Xq+UuKTOsPFSn4WebXuXrA3CDE3cN/FdCIIbyqySeOZYjg8TQAj+p0wuA07A9DIcb6/1 wKFmWOo8oljzxJvruE+cf9O9iHkP2NZemFS5o=
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=1z5mk7asWaNM+P59MDWjFwoKINjD4qHtnV3S1RhWuLE=; b=VSpeWWXwA8alzUE3nad53nHKTdrfNiG0p3RM/2pVr2ZjbrwDldnc1O28zVANYJn5H9 cgKvBDmZVLg4sMGq9Sj2anXkbJa/F/tm5tRNKkODZb/kjzyYFGkG3RbB6NhakEc0hwU/ xC33K/xpMcO2KpIqcxq7rlKTw4oCuncS76jk7SGOi091VuWkx430GSgn6Km/D6RQW8VQ Qi9Q6oQeqMmsmvrW2B7lxGHAtSDgR26dJsNeUSEjql/naqddkInDckbIH0oOG2sE1xG7 r1mdIeNhLqlP1/eDZAv5BJmVrTgGz01DGPtI9K1dJEp8kjw0h/4ZQAC4kAVBgVdF7q1V MzsQ==
MIME-Version: 1.0
X-Received: by 10.60.103.148 with SMTP id fw20mr15891787oeb.37.1369578703420; Sun, 26 May 2013 07:31:43 -0700 (PDT)
Received: by 10.182.89.230 with HTTP; Sun, 26 May 2013 07:31:43 -0700 (PDT)
In-Reply-To: <CAP+FsNfBoh6wcqTUHfHPhbf8zZ4Vj=i2Lg4bEG5wcyuUwz60eQ@mail.gmail.com>
References: <CABP7RbfX_H_7dwM7ExL5qJgpV5JN1NYyv9tqnu_E23qGk63mWg@mail.gmail.com> <CAA4WUYhDhoS+BNknRnYLAOXfWzumcjkWnQnM=NkNM8oqqE=atw@mail.gmail.com> <CAOdDvNqkuY5qtOzFz5J0v1F1_n8HmFY9J==sXMs_9tDrTTE=cg@mail.gmail.com> <CAA4WUYhZb_ScYZ=F8ypGkXkX=3oK+4TnyWOtuN_FNkZqqhbZLQ@mail.gmail.com> <CABP7RbeAwrT15QKn5kL0=w+V0zBgObe_pOzT-NxbwSrZ_RyA+A@mail.gmail.com> <CAP+FsNd95pXcPM1OiG2qjOyXKV80noh2frdEbORwe6HxsgeK3Q@mail.gmail.com> <CABP7RbfOWdaOVeVSmnrqUtHM5F8=xjLauDBoRbpijWsWxyK+rw@mail.gmail.com> <CA+pLO_g892Cr1B8GtN01j1GArU0+Mkoya2UAAb893ZrfKdyeEA@mail.gmail.com> <CAP+FsNe4=hVsm3sNerAdELECHz_2m8aWOLK-Kif-JVz_G=HyKw@mail.gmail.com> <CA+pLO_jaDNWyZyxsWVQ2YuBG8kuZjo1KovmBVfa2d9vVYb56dg@mail.gmail.com> <CAP+FsNd0AZEDXvTD7uvEgFK-4GRShj9tEcam0C68t4S_ySTNUw@mail.gmail.com> <CA+pLO_i84tPbrVZgE-0uLeZs5UB0wY2PLn=R9V74ZUe+0TyfiA@mail.gmail.com> <CAP+FsNcWfdgtW+-6tpXgcAPZSNHOdBuoMXLY4nPyf4YoLTeotg@mail.gmail.com> <CA+pLO_gV4YS6FVMiQ0rzDEHCYnOJdeGftY4Z0nm18qfaQBdofA@mail.gmail.com> <CAP+FsNfBoh6wcqTUHfHPhbf8zZ4Vj=i2Lg4bEG5wcyuUwz60eQ@mail.gmail.com>
Date: Sun, 26 May 2013 07:31:43 -0700
Message-ID: <CA+pLO_j8CX9vddtogsjz80uN=kv6vE7V1dJqEuJdTtGO64PYyw@mail.gmail.com>
From: Jeff Pinner <jpinner@twitter.com>
To: Roberto Peon <grmocg@gmail.com>
Cc: James M Snell <jasnell@gmail.com>, =?UTF-8?B?V2lsbGlhbSBDaGFuICjpmYjmmbrmmIwp?= <willchan@chromium.org>, Patrick McManus <pmcmanus@mozilla.com>, "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary=089e0118485c1c154d04dd9fe4d2
X-Gm-Message-State: ALoCoQnC97OaOE0SlkbU0/H6X1bUgGvCqgdGrD18q/msNThYrQkhPHzBS21baV9nmF+hjZmAsDzf
Received-SPF: pass client-ip=209.85.214.172; envelope-from=jpinner@twitter.com; helo=mail-ob0-f172.google.com
X-W3C-Hub-Spam-Status: No, score=-3.6
X-W3C-Hub-Spam-Report: AWL=-2.841, 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 1UgbzV-0005Xv-FG 4c4e6dc3db70bedf6d388db8f9b87be2
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Design Issue: Separate HEADERS and PRIORITY Frames, Eliminate HEADERS+PRIORITY
Archived-At: <http://www.w3.org/mid/CA+pLO_j8CX9vddtogsjz80uN=kv6vE7V1dJqEuJdTtGO64PYyw@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/18099
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>

> This is what I favor, and it is at most 8 bytes of overhead (send an empty
> HEADERS frame before whatever else) in non-HTTP cases where metadata about
> the stream opening is not needed (nothing that I can think of would do this
> today).
>
>

You've convinced me -- having only one frame be able to open streams is
very compelling.


>
>> Another option is a flag on the HEADERS frame similar to the continuation
>> bit that says a PRIORITY frame is following and must be sent after the
>> continued headers are received.
>>
>
> This is basically what HEADERS+PRIORITY is, without the overhead of the
> frame-header.
>
>
So since we have frame specific flags now can we just use them and drop to
duplicated frame type so that only one frame is used for stream creation?

1. remove frame 0x08 HEADERS as duplicated
2. rename frame 0x01 from HEADERS+PRIORITY to HEADERS and indicate that it
is the only frame that may create a stream
3. add flag 0x02 PRIORITY to the HEADERS frame to indicate the first 4
bytes of the frame contain a priority field
4. add flag 0x04 CONTINUED to the HEADERS frame to indicate that the
headers block is split across a second frame which must be the next frame
sent on the wire
5. add a frame 0x02 PRIORITY that is 4 bytes long and must be sent only on
open streams

a slightly different shade of shed :)