Re: Design Issue: HEADERS+PRIORITY "MUST be used" for each stream that is created??

William Chan (陈智昌) <willchan@chromium.org> Sun, 28 April 2013 21:56 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 6998021F9855 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 28 Apr 2013 14:56:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.676
X-Spam-Level:
X-Spam-Status: No, score=-9.676 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, 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 8hzWZsvI5zkw for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 28 Apr 2013 14:56:39 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 37AD821F9819 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Sun, 28 Apr 2013 14:56:39 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1UWZYP-0000fr-Ou for ietf-http-wg-dist@listhub.w3.org; Sun, 28 Apr 2013 21:54:41 +0000
Resent-Date: Sun, 28 Apr 2013 21:54:41 +0000
Resent-Message-Id: <E1UWZYP-0000fr-Ou@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <willchan@google.com>) id 1UWZYH-0000f6-51 for ietf-http-wg@listhub.w3.org; Sun, 28 Apr 2013 21:54:33 +0000
Received: from mail-qc0-f173.google.com ([209.85.216.173]) by lisa.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <willchan@google.com>) id 1UWZYG-0008NR-B5 for ietf-http-wg@w3.org; Sun, 28 Apr 2013 21:54:33 +0000
Received: by mail-qc0-f173.google.com with SMTP id b12so2899231qca.32 for <ietf-http-wg@w3.org>; Sun, 28 Apr 2013 14:54:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=u9snUu4MZS1UrG33PgFcDyZdduSG3Dtr2fEeFNVCEzQ=; b=SfIVsxMnmG9iw4HBqAPeAVNdyDKUVKTCO3rsqS9bA7o2ycvTP3XY6M3W1LKlmREltq obb49p0e/gMQMMiIVSsQnGlDsMYmC5AREOEhE026VzMWDn4UkZSwhVwEep2C+8uPLGbm QT3FlrMSu8q51AU46Bnx0GsiQWDxiOyKlBdfaz2gb0eLpmU8p8G6GFG/vh4JdBfWjuQP lhe896gLM0ruYSsJlf2HUgzLZTeDlChKzGiN048muGZ3ijnT5OepQAKxdX3l63VNMtOn mwU5PQirDUbqYVPyf3vBOmdZXyBG3HGlEKscMhtpyJvyYRUW+KB4ahoJA9TyANHDUXPa r+TA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:x-received:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=u9snUu4MZS1UrG33PgFcDyZdduSG3Dtr2fEeFNVCEzQ=; b=USXT8iop+rLEI/J4r2KSJ6LS4RJkZk6ECuxd9YrODD9sD16XAVxGxwWspCbm61KDYk cpaqNFcnK0TEHcndxaDLoSyJ/5gEezndegef0uVmMhF5r2e6s2WYagHkoKe325rXztkk mBhGxSu8j49Az1hCEYT128jdGJ0GWnjHxHRRQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :x-gm-message-state; bh=u9snUu4MZS1UrG33PgFcDyZdduSG3Dtr2fEeFNVCEzQ=; b=AmUeJjn3OteHAnlVp2bV6udSnZ8yBFui0dNGZ5ShtqPuCGFQbk7vR3k7CNTMche6RR uI4XT56nekKnsbUvUt/QV5pWK+s9/yHdE6RV4gRdpFxkpLnkDyj65VuNrVjSwG3jKrpO 29JJXEUoPYqQrbWfgBApw0aA7f6A4ZWOyJazDrB7xRMJf7ip2P5ES0K8xtLlqP0jk7YN 9RBi375uU8b1HUCwCKbGyz+gon45czmvmYZtxKF2muZAtwC08PtMmIsg36IoqtF3lXQb QPKRx08otc0BKvwUOX/hkYlwISsO7HaqK+gV4+9Dw+a+RME256fmO2wyV+uFkUyuovOU YyFg==
MIME-Version: 1.0
X-Received: by 10.49.19.3 with SMTP id a3mr45575614qee.22.1367186046635; Sun, 28 Apr 2013 14:54:06 -0700 (PDT)
Sender: willchan@google.com
Received: by 10.229.180.4 with HTTP; Sun, 28 Apr 2013 14:54:05 -0700 (PDT)
In-Reply-To: <CABP7Rbcf9nLob8LT2McFL_5AX+SFksTRGO=V8Ntt=Aiia3etyg@mail.gmail.com>
References: <CABP7Rbe808o_rqxnvVvH6OJxqFSvOnoLgnaQT5goFabBF_zi0A@mail.gmail.com> <CABkgnnUBnr8+_bbFRGMhnWSkGK5N+DoX75m8bHuLfa0Zbq4=CA@mail.gmail.com> <CABP7RbeAb71vTmnGbR65wVepyT=WykdRcRNFYDuWoprWD7+2gg@mail.gmail.com> <CABkgnnW5tDqVwRJE99Fkd5YFeAcRZYPV40QjuBrdrZxbKj6+9w@mail.gmail.com> <CABP7RbeEzozvxq4rAeL-+QgyctPxC4cXLC=7gPOYQS0cUqkDcQ@mail.gmail.com> <CAP+FsNdNxykDTDNmFrq4JfQDtLhH3Swtx9O3mxXd1PNRz97Eog@mail.gmail.com> <CABP7Rbcf9nLob8LT2McFL_5AX+SFksTRGO=V8Ntt=Aiia3etyg@mail.gmail.com>
Date: Sun, 28 Apr 2013 14:54:05 -0700
X-Google-Sender-Auth: FES5nA4L7YQm5MPLgl3WHLDlujg
Message-ID: <CAA4WUYgpavHXf2VqUkp=jH_y6vmdq=GiVJG5=A=h3J8opRPoMQ@mail.gmail.com>
From: =?UTF-8?B?V2lsbGlhbSBDaGFuICjpmYjmmbrmmIwp?= <willchan@chromium.org>
To: James M Snell <jasnell@gmail.com>
Cc: Roberto Peon <grmocg@gmail.com>, HTTP Working Group <ietf-http-wg@w3.org>, Martin Thomson <martin.thomson@gmail.com>
Content-Type: multipart/alternative; boundary=047d7bd766aaa7073904db72ce2d
X-Gm-Message-State: ALoCoQlFrhHfv8X70SuE0f4fp0BC4CNR7A7yCnPxXe3MoKUVUdoqOiu6+etpf/jcolpjJuNUMTvcRyMwB29845lOnCdvujUcbwN7cXCcchxy5IRT6WUQA+KSGDHX2pdqn2XTE+9A6giLQQ7QthqkYIhEccIMiw4amww8DifNOVTZLndU/ve6u/Wv88vKwwzTW0zhjj4dhtlU
Received-SPF: pass client-ip=209.85.216.173; envelope-from=willchan@google.com; helo=mail-qc0-f173.google.com
X-W3C-Hub-Spam-Status: No, score=-5.7
X-W3C-Hub-Spam-Report: AWL=-0.543, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-2.438, SPF_PASS=-0.001
X-W3C-Scan-Sig: lisa.w3.org 1UWZYG-0008NR-B5 770b7ad2610d6d93d5c1e3450c2e0188
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Design Issue: HEADERS+PRIORITY "MUST be used" for each stream that is created??
Archived-At: <http://www.w3.org/mid/CAA4WUYgpavHXf2VqUkp=jH_y6vmdq=GiVJG5=A=h3J8opRPoMQ@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/17647
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>

My connection is spotty right now in Buenos Aires, or else I'd pull up the
websocket over spdy proposal from the Google team and also the
spdy-dev@discussion on it. In all cases, a SPDY SYN_STREAM (now HTTP/2
HEADERS+PRIORITY) was used to initiate the stream. I think Roberto's right
about announcing the endpoint (requires the full URL, due to connection
sharing, scheme, and path). I think it's reasonable to require a stream
creation frame (HEADERS+PRIORITY or HEADERS) for each stream before data is
sent.


On Sat, Apr 27, 2013 at 11:17 PM, James M Snell <jasnell@gmail.com> wrote:

> Minor correction on my note... I meant to say we don't really seem to have
> a good reason to allow data frames *without* preceding header bearing
> frames.
> On Apr 27, 2013 2:44 PM, "Roberto Peon" <grmocg@gmail.com> wrote:
>
>> The WS case may actually require headers as we do need to announce (per
>> WS 'connection') the URL of the endpoint to which it is
>> attaching/connecting.
>> -=R
>>
>>
>> On Fri, Apr 26, 2013 at 1:54 PM, James M Snell <jasnell@gmail.com> wrote:
>>
>>> Well, until that case is made, we don't have very many good reasons to
>>> allow DATA frames with preceding headers-bearing frames. Also, keep in
>>> mind that it's perfectly legal to send a HEADERS frame with an empty
>>> set of HEADERS. It the WebSockets case does not require any preceding
>>> headers (which I rather doubt), it would still be simple enough to
>>> send an empty HEADERS frame to establish the stream before sending the
>>> DATA frames.
>>>
>>>
>>> On Fri, Apr 26, 2013 at 1:49 PM, Martin Thomson
>>> <martin.thomson@gmail.com> wrote:
>>> > On 26 April 2013 13:43, James M Snell <jasnell@gmail.com> wrote:
>>> >> I think I disagree on that point and say that I think it's much safer
>>> >> if we require that streams be initiated with only headers-bearing
>>> >> frames.
>>> >>
>>> >> Imagine, for instance, that a sender sends along a DATA frame with a
>>> >> new, previously unused stream identifier. Without an associated
>>> >> headers frame I have absolutely no context with which to determine
>>> >> what I need to do with that DATA frame. Likewise if I receive an
>>> >> RST_STREAM that references a previously unused stream identifier. If
>>> >> there's absolutely nothing that I can reliably do with it, or not
>>> >> reliable way that I can interpret it without additional context, then
>>> >> we should not allow it.
>>> >
>>> > I believe that this is exactly the scenario that the websockets
>>> > binding will take advantage of.  (Maybe there is some need to expose
>>> > some header information there, but that's a case that needs to be made
>>> > for that specific use of the framing layer.)
>>>
>>>
>>