REFUSED_STREAM and CANCEL

Martin Thomson <martin.thomson@gmail.com> Tue, 26 March 2013 18:17 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 05B8421F8C4F for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 26 Mar 2013 11:17:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.599
X-Spam-Level:
X-Spam-Status: No, score=-10.599 tagged_above=-999 required=5 tests=[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 gq2K-nLY5Rc8 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 26 Mar 2013 11:17:47 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 7C4F221F8C72 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Tue, 26 Mar 2013 11:17:47 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1UKYQg-0002HM-2c for ietf-http-wg-dist@listhub.w3.org; Tue, 26 Mar 2013 18:17:02 +0000
Resent-Date: Tue, 26 Mar 2013 18:17:02 +0000
Resent-Message-Id: <E1UKYQg-0002HM-2c@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <martin.thomson@gmail.com>) id 1UKYQV-0002F1-3r for ietf-http-wg@listhub.w3.org; Tue, 26 Mar 2013 18:16:51 +0000
Received: from mail-we0-f172.google.com ([74.125.82.172]) by lisa.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <martin.thomson@gmail.com>) id 1UKYQU-00066a-2v for ietf-http-wg@w3.org; Tue, 26 Mar 2013 18:16:51 +0000
Received: by mail-we0-f172.google.com with SMTP id r3so2858842wey.3 for <ietf-http-wg@w3.org>; Tue, 26 Mar 2013 11:16:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:date:message-id:subject:from:to :content-type; bh=306VsltbF+cw7pnHhmuCxCHUmaWBhStvP4uOcOCY0mM=; b=oG0JcteE2F3oQfN67yzUi2dD7h0Qxt4y0qrxaV+PHgRVGi+iFQseY8jTlb4vbneMdy IhvR9aZWQUWw0+9UBWTsXzzt+ICI+ah1BikSG5+Sou9hA4CqI16fExvcLg0NCD7A9USZ 37HUFd+klTh+PiSeQoPWMsDneLQ5CQums/CEB1SR+PrFdiEJe6/7HptYgo7RplCseQUn KD0rzueprsTfsyP6BBmEQEk5mntK6OVhtmXAS0wxHIIyHuS2mw6dvrL1cC8tTnFgi8lY WZJP0HFSiaLFEOdJw4aeRy3Kjc9DuWhHV4G3RgAV5aWiN/UHXR52HjXTm/3PifW1TqFA kQEA==
MIME-Version: 1.0
X-Received: by 10.180.80.35 with SMTP id o3mr5084012wix.9.1364321783838; Tue, 26 Mar 2013 11:16:23 -0700 (PDT)
Received: by 10.194.5.135 with HTTP; Tue, 26 Mar 2013 11:16:23 -0700 (PDT)
Date: Tue, 26 Mar 2013 11:16:23 -0700
Message-ID: <CABkgnnXtjrZ6rqucN3EToVfV1iaz73RBEbd-D3P9iaSczcqw0Q@mail.gmail.com>
From: Martin Thomson <martin.thomson@gmail.com>
To: HTTP Working Group <ietf-http-wg@w3.org>
Content-Type: text/plain; charset=UTF-8
Received-SPF: pass client-ip=74.125.82.172; envelope-from=martin.thomson@gmail.com; helo=mail-we0-f172.google.com
X-W3C-Hub-Spam-Status: No, score=-4.4
X-W3C-Hub-Spam-Report: AWL=-1.721, BAYES_00=-1.9, 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: lisa.w3.org 1UKYQU-00066a-2v b943b2c20f08858eaadf7a9125a60430
X-Original-To: ietf-http-wg@w3.org
Subject: REFUSED_STREAM and CANCEL
Archived-At: <http://www.w3.org/mid/CABkgnnXtjrZ6rqucN3EToVfV1iaz73RBEbd-D3P9iaSczcqw0Q@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/17144
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'm just going through the HTTP/2.0 error codes and this leaped out.

Can anyone explain the useful difference between the REFUSED_STREAM
and CANCEL error codes?

All the superficial reasons carry no semantic value:
 - who initiated the stream
 - whether the stream has (or has not) started processing

Furthermore, the implication from REFUSED_STREAM is that this is a
rejection, but we don't block stream use on permission.  We just send
data and wait for the other side to object.

Abandonment of a stream doesn't just occur from the stream initiator
side (even if that is the natural place to abort from).  The
implication of asymmetry seems unnecessary.

All of the use cases could be covered with a single CANCEL_STREAM code.