can h2 extension frames carry data?

Matthew Kerwin <matthew@kerwin.net.au> Mon, 02 November 2015 11:51 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@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 (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 148551B358D for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 2 Nov 2015 03:51:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.289
X-Spam-Level:
X-Spam-Status: No, score=-6.289 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YMxm_BlWyN4F for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 2 Nov 2015 03:51:49 -0800 (PST)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E549D1B3585 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Mon, 2 Nov 2015 03:51:48 -0800 (PST)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1ZtDaX-0001Y7-PU for ietf-http-wg-dist@listhub.w3.org; Mon, 02 Nov 2015 11:47:49 +0000
Resent-Date: Mon, 02 Nov 2015 11:47:49 +0000
Resent-Message-Id: <E1ZtDaX-0001Y7-PU@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <phluid61@gmail.com>) id 1ZtDaS-0001WN-Tf for ietf-http-wg@listhub.w3.org; Mon, 02 Nov 2015 11:47:44 +0000
Received: from mail-qg0-f46.google.com ([209.85.192.46]) by maggie.w3.org with esmtps (TLS1.2:RSA_ARCFOUR_SHA1:128) (Exim 4.80) (envelope-from <phluid61@gmail.com>) id 1ZtDaP-0005Qx-EI for ietf-http-wg@w3.org; Mon, 02 Nov 2015 11:47:44 +0000
Received: by qgem9 with SMTP id m9so113553450qge.1 for <ietf-http-wg@w3.org>; Mon, 02 Nov 2015 03:47:15 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:date:message-id:subject:from:to:content-type; bh=wOrZVlaUAO8+Blj3NkPpjGro68U0cT4FvTvYzymzcHA=; b=JcjCgqxm3c8TX7lvKzpKJIB8EvYpy9GMkwCvS1750D+MvwwfdGPr1yYoH4GvoPcuJw GHOH8wPOQhsLvia9zQeTRP92ungDqi8W3QhuQDojxV0kzBocVL3ZUTuogDd0PsNCANql m9jPWlId5eyG8GNB9QvuT68jMmQAeaCbuXilQ0DIYcbbrEvbwC+TtE4qmk+pBQ5P3CDe 8AuvVbt3I5qCGFpuydJnr7WjXdlMea6NK7QO76flfjpCTUFlqn0nAYxmuQ9ygtmzdY0H 8rcURpxKU4JYoy//kyVWvfjXj+7eB6+X63BT4BbqrInX8EzH9ntgGNhSgT+uBfxhFdyG 0bVw==
MIME-Version: 1.0
X-Received: by 10.140.22.175 with SMTP id 44mr28428641qgn.29.1446464835226; Mon, 02 Nov 2015 03:47:15 -0800 (PST)
Sender: phluid61@gmail.com
Received: by 10.55.70.76 with HTTP; Mon, 2 Nov 2015 03:47:15 -0800 (PST)
Date: Mon, 02 Nov 2015 21:47:15 +1000
X-Google-Sender-Auth: vICihn7Eadi1x42-EWP0c34IJcE
Message-ID: <CACweHNDNr9aXnguiZ4eV=RrMWXacuVSg8C+P3k==jiefdf_jZw@mail.gmail.com>
From: Matthew Kerwin <matthew@kerwin.net.au>
To: "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="001a11c126e8af14e305238d566d"
Received-SPF: pass client-ip=209.85.192.46; envelope-from=phluid61@gmail.com; helo=mail-qg0-f46.google.com
X-W3C-Hub-Spam-Status: No, score=-5.1
X-W3C-Hub-Spam-Report: AWL=-0.782, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: maggie.w3.org 1ZtDaP-0005Qx-EI 82e2e9e51d756ef0e00283a2dd56c312
X-Original-To: ietf-http-wg@w3.org
Subject: can h2 extension frames carry data?
Archived-At: <http://www.w3.org/mid/CACweHNDNr9aXnguiZ4eV=RrMWXacuVSg8C+P3k==jiefdf_jZw@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/30416
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>

Hi folks, I have a simple question: can HTTP/2 extension frames be used to
send data?

In draft-kerwin-http2-encoded-data I've defined the GZIPPED_DATA frame,
which is just like DATA but gzipped. It's protected by a setting which
defaults to 0, and you MUST NOT send a GZIPPED_DATA frame unless the peer's
setting is 1.

The problem I'm facing is, what happens if a buggy peer sends the frame at
the wrong time (or, potentially worse, if a buggy peer sends the setting
incorrectly?) Because "implementations MUST discard frames that have
unknown or unsupported types," we can end up silently losing data, with no
way to detect it, let alone throw an error or recover.

In HTTP/2 we've been pretty good at backing up most MUST NOTs with
detectable errors, and I don't feel comfortable introducing something where
the "or else" is "the page you requested/sent evaporates silently."

Is this a deficiency of HTTP/2's extensibility model? Or am I missing a
simple way to make it work?

Cheers
-- 
  Matthew Kerwin
  http://matthew.kerwin.net.au/