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

James M Snell <jasnell@gmail.com> Fri, 26 April 2013 18:48 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 5073021F991E for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 26 Apr 2013 11:48:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.269
X-Spam-Level:
X-Spam-Status: No, score=-10.269 tagged_above=-999 required=5 tests=[AWL=0.330, BAYES_00=-2.599, 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 hc3pswWKyn9S for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 26 Apr 2013 11:48:38 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id BC5BD21F990E for <httpbisa-archive-bis2Juki@lists.ietf.org>; Fri, 26 Apr 2013 11:48:38 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1UVnh6-0005Lv-6g for ietf-http-wg-dist@listhub.w3.org; Fri, 26 Apr 2013 18:48:28 +0000
Resent-Date: Fri, 26 Apr 2013 18:48:28 +0000
Resent-Message-Id: <E1UVnh6-0005Lv-6g@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <jasnell@gmail.com>) id 1UVnh1-0005LB-MN for ietf-http-wg@listhub.w3.org; Fri, 26 Apr 2013 18:48:23 +0000
Received: from mail-ob0-f179.google.com ([209.85.214.179]) by maggie.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <jasnell@gmail.com>) id 1UVnh1-0004Rw-3k for ietf-http-wg@w3.org; Fri, 26 Apr 2013 18:48:23 +0000
Received: by mail-ob0-f179.google.com with SMTP id oi10so3755288obb.38 for <ietf-http-wg@w3.org>; Fri, 26 Apr 2013 11:47:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:mime-version:from:date:message-id:subject:to :content-type; bh=UbaMrFFhKVaqQ6miXxmwfBRBDkXCPBxylGnmOPkT9V8=; b=CBb3g+cHwHpOtajNHVV0g6WGuQS0PG7Da78ttpD7iFQLQZs60J7rYqxQ9+ekRyxWec aFnCZbOikVyS/RrIoqkd2fV8xukhfbeA/Mw0ElPgpFIpEcm28daOdPQjLLtb+3aznNVw K3OtszCFTqjf1yttcZBJwlwwOm5OlbYr+wpqsCqpdLuxnmYWYm4fRLA9rCRcUV/X54Oq +QKfdE6i2C3n1sJvSMq7lzrbpguibeHiT/oe9l6m6iTiQv+owtnbb8xLzTu6VjIZFTRJ a65bG3jO4NvKX3CQWIr9DXEpuaOemaOwxk17NatHxKMh1o2u3/ZiLMQU5Kqib1nsgnxa lvUw==
X-Received: by 10.60.47.84 with SMTP id b20mr4259655oen.135.1367002077286; Fri, 26 Apr 2013 11:47:57 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.60.3.137 with HTTP; Fri, 26 Apr 2013 11:47:37 -0700 (PDT)
From: James M Snell <jasnell@gmail.com>
Date: Fri, 26 Apr 2013 11:47:37 -0700
Message-ID: <CABP7Rbe808o_rqxnvVvH6OJxqFSvOnoLgnaQT5goFabBF_zi0A@mail.gmail.com>
To: "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Content-Type: text/plain; charset=UTF-8
Received-SPF: pass client-ip=209.85.214.179; envelope-from=jasnell@gmail.com; helo=mail-ob0-f179.google.com
X-W3C-Hub-Spam-Status: No, score=-3.5
X-W3C-Hub-Spam-Report: AWL=-2.655, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001
X-W3C-Scan-Sig: maggie.w3.org 1UVnh1-0004Rw-3k f9d126d5440cf59c36df5488a8a337a2
X-Original-To: ietf-http-wg@w3.org
Subject: Design Issue: HEADERS+PRIORITY "MUST be used" for each stream that is created??
Archived-At: <http://www.w3.org/mid/CABP7Rbe808o_rqxnvVvH6OJxqFSvOnoLgnaQT5goFabBF_zi0A@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/17619
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>

In the current draft (-02), under the definition of HEADERS+PRIORITY,
we say that the frame "MUST be used for each stream that is created"..

Is this really true? This is inconsistent with other parts of the spec...

Elsewhere we say that streams are created by sending any frame that
references an unused stream ID.

We also say that PUSH_PROMISE frames are followed up by a HEADERS
frame (not HEADERS+PRIORITY).

I believe the intent here is that streams ought only to be created
when sending a HEADERS, HEADERS+PRIORITY or PUSH_PROMISE frame that
references an unused stream ID.

A DATA frame that references a previously unused Stream ID ought to
result in a PROTOCOL_ERROR.

(which brings up an interesting question: what happens if I receive an
RST_STREAM that references a previously unused stream id? Based on the
rules so far, that would mean the stream ID would be closed before
there is ever a chance to use it... possible DOS vector?)