[Doh] How to start HTTP/2?

Stephane Bortzmeyer <bortzmeyer@nic.fr> Tue, 16 January 2018 15:02 UTC

Return-Path: <bortzmeyer@nic.fr>
X-Original-To: doh@ietfa.amsl.com
Delivered-To: doh@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id 4F70112FB35 for <doh@ietfa.amsl.com>; Tue, 16 Jan 2018 07:02:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.91
X-Spam-Status: No, score=-6.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, T_RP_MATCHES_RCVD=-0.01] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id WckuJXxgjohn for <doh@ietfa.amsl.com>; Tue, 16 Jan 2018 07:02:49 -0800 (PST)
Received: from mx4.nic.fr (mx4.nic.fr [IPv6:2001:67c:2218:2::4:12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 187B612D7E9 for <doh@ietf.org>; Tue, 16 Jan 2018 07:02:49 -0800 (PST)
Received: from mx4.nic.fr (localhost []) by mx4.nic.fr (Postfix) with SMTP id D3E7C281C3A for <doh@ietf.org>; Tue, 16 Jan 2018 16:02:46 +0100 (CET)
Received: by mx4.nic.fr (Postfix, from userid 500) id CEAD4281C4A; Tue, 16 Jan 2018 16:02:46 +0100 (CET)
Received: from relay01.prive.nic.fr (relay01.prive.nic.fr [IPv6:2001:67c:2218:15::11]) by mx4.nic.fr (Postfix) with ESMTP id C8084281C3A for <doh@ietf.org>; Tue, 16 Jan 2018 16:02:46 +0100 (CET)
Received: from b12.nic.fr (b12.users.prive.nic.fr []) by relay01.prive.nic.fr (Postfix) with ESMTP id C56A1606D942 for <doh@ietf.org>; Tue, 16 Jan 2018 16:02:46 +0100 (CET)
Received: by b12.nic.fr (Postfix, from userid 1000) id BBF164147F; Tue, 16 Jan 2018 16:02:46 +0100 (CET)
Date: Tue, 16 Jan 2018 16:02:46 +0100
From: Stephane Bortzmeyer <bortzmeyer@nic.fr>
To: doh@ietf.org
Message-ID: <20180116150246.dvr3d3nstozqfadn@nic.fr>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
X-Operating-System: Debian GNU/Linux 9.3
X-Kernel: Linux 4.9.0-5-amd64 x86_64
X-Charlie: Je suis Charlie
Organization: NIC France
X-URL: http://www.nic.fr/
User-Agent: NeoMutt/20170113 (1.7.2)
X-Bogosity: No, tests=bogofilter, spamicity=0.000069, version=1.2.2
X-PMX-Version:, Antispam-Engine:, Antispam-Data: 2018.1.16.145416
Archived-At: <https://mailarchive.ietf.org/arch/msg/doh/EklqId-tmdvKylmwBPysuY-H1j4>
Subject: [Doh] How to start HTTP/2?
X-BeenThere: doh@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: DNS Over HTTPS <doh.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/doh>, <mailto:doh-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/doh/>
List-Post: <mailto:doh@ietf.org>
List-Help: <mailto:doh-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/doh>, <mailto:doh-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 16 Jan 2018 15:02:51 -0000

RFC 7540 specifies several ways to start HTTP/2 over a TCP connection
(section 3), such as upgrade from HTTP/1, or starting directly HTTP/2
if you know the server accepts it. Which one should be used by DoH
clients and servers? Section 7 of draft-ietf-doh-dns-over-https-02
seems silent about it.

Note that this interacts with the discussion about whether HTTP/2
support is SHOULD or MUST.

For the server:

1) accepts all RFC 7540 methods?
2) accepts only "immediately receives HTTP/2 frames"?

For the client?

1) try all RFC 7540 methods? In which order?
2) try only "immediately sends HTTP/2 frames"? (If HTTP/2 support is a
MUST, it makes sense)

Note that some clients are currently limited. I don't think you can
immediately send HTTP/2 frames with curl, for instance.