Re: HTTP/3 Preface (PRI method)

Roberto Peon <fenix@fb.com> Wed, 07 July 2021 18:51 UTC

Return-Path: <prvs=6822ec3f77=fenix@fb.com>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A29833A2475 for <quic@ietfa.amsl.com>; Wed, 7 Jul 2021 11:51:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.295
X-Spam-Level:
X-Spam-Status: No, score=-2.295 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.198, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=fb.com
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 RziD1-zbSgNR for <quic@ietfa.amsl.com>; Wed, 7 Jul 2021 11:51:19 -0700 (PDT)
Received: from mx0a-00082601.pphosted.com (mx0a-00082601.pphosted.com [67.231.145.42]) (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 CE79C3A246F for <quic@ietf.org>; Wed, 7 Jul 2021 11:51:19 -0700 (PDT)
Received: from pps.filterd (m0044010.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 167IpBpb027374; Wed, 7 Jul 2021 11:51:15 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=facebook; bh=1cgi6te12ScZBXmylWMSRdoIOCg02/zuiNLxDExsOU8=; b=A6hXolZFX71k3hVdfO90PQhuEVqhm6v/E3RGGDRvLoBouYBRXTYgFTDkrfIh8U5FyqBq duE9I7aotmuKoykgbC85JqnbFywfjY+p2DPijPByBWAyj60kgU3JbJizeRABhgL9V77D +YdNu4H+n/pNt1LQjXiA9Anl9kIiZ1SqgoM=
Received: from mail.thefacebook.com ([163.114.132.120]) by mx0a-00082601.pphosted.com with ESMTP id 39mmbejc2j-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Wed, 07 Jul 2021 11:51:15 -0700
Received: from NAM11-DM6-obe.outbound.protection.outlook.com (100.104.98.9) by o365-in.thefacebook.com (100.104.94.199) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Wed, 7 Jul 2021 11:50:53 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MKku/GlEVWIu05p0sep0JR1vR0QmLl0tuqTk7cAjEZXYgdwQBC4D3pCjTTPYHAGEvKBxQTtYrOEBeczsECwCnbhy1o+9WaKQuh+xegZbwv508f17APnjSq4QVUXFZjVsqDj5ViJYcr6gNfCj2htIeyy1UPcvl7qMmADT2yq4ayoj3aXRoKcblN5IJHYTBEIGPHpahq8oD4jnY0QPu+qhUgw22jqmYI2jd14+3pi4MCe+DfKzMhehvkdbYU5FPMNS6/iYL5RZrdqf8XAxhzaquxpqMmHRXUc1xaYEivtXXwJ3c5U9BG9HbUFXRuBDmOpMNv+bcmWLmOCbLZ0f+1hTlA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TU43BgJJ26/9wrP/uByvTRbY5HzlHVJPGwpGqJtwm9g=; b=ZmuH27GlQiF6M2RG4OWnpI26zOimJu66FwyyWy7p87gVEq5KSwtbWfUHtxOo/grJnU4ocqjaT+dbdneHwbBkIlXpTgFxfdkqJapc5Z66hgHG6PPAYWEArdA4UsyVu79fV323DYFvKNZYyCN7/HHmOTjgQubjNQDPXNOg/Y3aEj+JwItZjlQGjY84cwDRLSzFpQERJuQZx8dVsTzT59cwPvStdPbxeR/vdH3WZU6RzD5RW79KvJ05jnBQiZCqe5jxvvwmFuuXNDXaeCMkJNGpeMbbN1g3AU5UX+MvCJtElHHy7+8FiB3ie4iqxVkJRhcS8WQb6gnDGGgn1EB1KYZFFg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fb.com; dmarc=pass action=none header.from=fb.com; dkim=pass header.d=fb.com; arc=none
Received: from DM6PR15MB2681.namprd15.prod.outlook.com (2603:10b6:5:1aa::28) by DM6PR15MB3611.namprd15.prod.outlook.com (2603:10b6:5:1fa::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.20; Wed, 7 Jul 2021 18:50:52 +0000
Received: from DM6PR15MB2681.namprd15.prod.outlook.com ([fe80::c5:d5e1:fad0:5deb]) by DM6PR15MB2681.namprd15.prod.outlook.com ([fe80::c5:d5e1:fad0:5deb%6]) with mapi id 15.20.4287.033; Wed, 7 Jul 2021 18:50:52 +0000
From: Roberto Peon <fenix@fb.com>
To: Mike Bishop <mbishop@evequefou.be>, "ben=40yocto.nu@dmarc.ietf.org" <ben=40yocto.nu@dmarc.ietf.org>, Matt Joras <matt.joras@gmail.com>
CC: IETF QUIC WG <quic@ietf.org>
Subject: Re: HTTP/3 Preface (PRI method)
Thread-Topic: HTTP/3 Preface (PRI method)
Thread-Index: AQHXbRqXcmWekyMMVEGSmnbf18Z0e6srYFgAgAAEggCACu9pgIABHjMA
Date: Wed, 07 Jul 2021 18:50:52 +0000
Message-ID: <FB5DA762-A7C6-4BB7-A811-F8F53156AF80@fb.com>
References: <4723f90d822b18e3d0402b6496ac1d02@yocto.nu> <CADdTf+im9s_A4LXiwR15R=iLr6X8PJR=J3xq7302WWeGEiOy1A@mail.gmail.com> <fc1c52d95748524e5322c1b083ad1ade@yocto.nu> <BLAPR22MB2259B0565DFAFD5A04263699DA1B9@BLAPR22MB2259.namprd22.prod.outlook.com>
In-Reply-To: <BLAPR22MB2259B0565DFAFD5A04263699DA1B9@BLAPR22MB2259.namprd22.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/16.50.21061301
authentication-results: evequefou.be; dkim=none (message not signed) header.d=none;evequefou.be; dmarc=none action=none header.from=fb.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: a8f683c5-c33c-4656-79f5-08d941782547
x-ms-traffictypediagnostic: DM6PR15MB3611:
x-microsoft-antispam-prvs: <DM6PR15MB361186461977E215E0B8D067CD1A9@DM6PR15MB3611.namprd15.prod.outlook.com>
x-fb-source: Internal
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: Mk+udu8RCae1AomlC+AZgx/W5fS7Fjg/nPonAeaplYcVWfvV+8f5P6dWVJehcW4lBxfaflDoNp69zo5AnhLW/0i5U011QtRUPxaRQMxmtqR26LX3O9e1ZKPCosNMWvRrFKL8SXywQPxtYdAa6+AZFNy4zL+0U6kEjUU509yWPu/teBRgt28EHNEG5HOPGHAgOKExnhoNAjUL1NgKcr8xJX0jaKkr0XmHPH5GH2XQZa2L/JbUprcaOiB/AjA9Lz9SX8+8/1xVYFkGhHnoL19qhWmqAB+0XEOVRfr01S8I+gryb68VYqcEDrNTiIcstbV7Teife+cmUQBh4m+9V4KjnSFnlmwHzcvopRKpMrTN3oR7JpCEKJ/JNS6gKrSd5guYOR6985yNvCa4Rr6/UPT1wXPv87YaYJuBBS4M4uCEc15idwD7CJdQEplwcn3r4c+l2WbQSHWcnKFy6S5SCq+kVdz65gSX4OFfbAxQ+w2Y9vIrlh3PHYiDNEUIHq9jGVd7HBNNyDuCee+XzEP2yX881vVaEl6wCxyAmh8NYaUXlMbwEVu8ohrm/DdojJCtKddmS8pNfyOmh9z8YCTdl3qTNbDH6hp+gcLuk37CxYStAa8N9+rSliyv9HhoqSui9fQdnXQ+RHe6pJ0mh4Bp2LoBGnKJo8UfWPjkDDLfKnB6GMne3LT1q8bDtmhF5YA4i0iNB+39nkPGCLKUPrPLfpJ2jB4bpRP4eLmdNSV6W3bA91N8rK+EY2VcCZo6w4/EdzYjd+Y3nNUFJ9fU+tx60Tg3uq6enXLfO4MJKmKcT6VXKPg=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR15MB2681.namprd15.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(136003)(39860400002)(396003)(376002)(346002)(53546011)(66476007)(66556008)(86362001)(6506007)(66946007)(76116006)(91956017)(8936002)(83380400001)(38100700002)(26005)(6512007)(64756008)(66446008)(36756003)(186003)(6486002)(122000001)(478600001)(4326008)(316002)(2906002)(110136005)(2616005)(8676002)(966005)(71200400001)(5660300002)(33656002)(45980500001); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 49rlg0HJyo3TJ6Vsi4Vo5NOJ+6h45gTnugqv4LGTbqE5pV1T6lHW2Tdg4H08MDSNNj1RYjzMNhTsh/EOXUGeOOZ/6q1Lxti4mv+H3HS0TtJso8+k2c9vhPMe+avSzoIbmTQ2OFgDsIQnyQZMl23fjJ7w9AQ5w/kmLeHNNPllANqHDdsUV9ht5bMk++HzKAnDDTudOn/YQ6wTz2Q1YtbKrF5KwhkUPyfHUPi+jDOg5JqJpae+IzXdUh3rmsTSdOlkmPszijTxpjubbXfvqYtczsIc6+gEu41eJPKlEQ3iR24dBGZR1GzDCfFG7YF7LPg9v2BegtiXhaxRyNboWHfeiFr1qmdyIXlxALyozqYwnV4qVlCvLw+PvsIOvLyRIhwEbgiaDmwBAY4RZJIJPU8OHPOfx+jdYZ6nR+p69FLuYULRVPR258BNaCtzHuv/i0fLu7g7KOz3z5j53AS7HKVCRJ37ZOWMXTIZCjNsUZB3qhaSYDdewC5flMqmLmW0vwZ0CT95Mod35/bAJ7U4TIzoKT/jR1PAUQTlh5VqvFlFeWNRDiIqSmB1obJPASo7jHTDCY1W5ZMOjGVtgJGAYNHaLTzvWhtD7Wif+X0g9gmLbd7+e0nYzd4ZGeX2rwtcTB9F/4sa4s3KbUGTsh7csGyJPDAl543pI7FZeXxu1AuhE/GkDYZizQ2yI/bVtmKqvQq77w+vZ1r8JFj0DYkeW1k2iRD3hjtp163p4ODRxgmBpq8OgbR2GmBtMEvGeSnG0APgEmAFT+sNcQTahef7A5dVNfKDlp4EOLgvhX3GeVsec0v/JJpnLtViZfnF4aifGfMT2YK0qJchu5QGfu1rLvzEmo2u/gZIiVQ3YIg+Py+CRUgSgamuOiLTK2TkUgcc2T4zL4ti5FkW52glCUyYWMLO1rawyPFDtheciaQNJ9IVuxaPtmG1O6kQUwaLqyr8pFuenGGJxylzXEXh9nic3gy21Uu+PeZmKq6mKLLWUAB6rl1T3RP7FbOAO2nb/LAvH6r6Xeo+RetQlaDrhS0n4fekbnNYkjEzgfXoXc+3AGIgYL5z0F20vuw20c5KZhr979F52WwMsbXWbCh7pbsRCdC/CwhRcsB7UyDkD2usVsFWKStxqRYBJE9vsMqMBiu/l045b+FEOB6jTl/WCNg5u7tQfAyrWnslglqqwiYQ15Oo7JGlLeggUiExg4Ke/QTX9P2LMvquyZW0H0WnJV3HNAJjGOPGsD9pGh2skzqL1TUBdc3ehOfkyL5cZFfJvS0qA0ZK6pdt3qT9PUX6/uvuO5J0mkWzF8hbcKG2RkDERVsi+aDa5XLScEFUIatIs4TFCOCG
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-ID: <33E75E419C229F498AD933B681CFD68D@namprd15.prod.outlook.com>
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR15MB2681.namprd15.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a8f683c5-c33c-4656-79f5-08d941782547
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jul 2021 18:50:52.5758 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 9G6eoaBrLEcnL1IupvxGTBVxMMtJ4hmtr1WXtRjM/x371HSXCwU10BEvne94HeFu
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR15MB3611
X-OriginatorOrg: fb.com
X-Proofpoint-GUID: e2kxEtRVGZFVHKrrVEdZpZ-qY9glz5sp
X-Proofpoint-ORIG-GUID: e2kxEtRVGZFVHKrrVEdZpZ-qY9glz5sp
Content-Transfer-Encoding: base64
X-Proofpoint-UnRewURL: 1 URL was un-rewritten
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391, 18.0.790 definitions=2021-07-07_09:2021-07-06, 2021-07-07 signatures=0
X-Proofpoint-Spam-Details: rule=fb_default_notspam policy=fb_default score=0 lowpriorityscore=0 suspectscore=0 phishscore=0 mlxlogscore=756 mlxscore=0 spamscore=0 clxscore=1011 impostorscore=0 malwarescore=0 priorityscore=1501 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104190000 definitions=main-2107070109
X-FB-Internal: deliver
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/OXg-lQbBJI78OKoCHTyk-INFZjA>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 07 Jul 2021 18:51:25 -0000

Sure, but it is sad that we describe it that way-- would be nicer to state the requirements we need from the underlying transport and then say that QUIC is the only one that first those requirements at the moment...

-=R

On 7/6/21, 11:47 AM, "QUIC on behalf of Mike Bishop" <quic-bounces@ietf.org on behalf of mbishop@evequefou.be> wrote:

    Regardless of how you see HTTP/3, the RFC-to-be says this:

    > HTTP/3 relies on QUIC version 1 as the underlying transport. The use of other QUIC transport versions with HTTP/3 MAY be defined by future specifications.

    That is, there is no such thing as HTTP/3 over TLS over TCP.  Neither is there any such thing as HTTP/3 directly over TCP.  HTTP/3 assumes and relies on a multi-streamed transport underneath it; you can't just drop it on top of a single bytestream transport and expect it to work.  There would be far larger issues than the connection prefix.

    -----Original Message-----
    From: QUIC <quic-bounces@ietf.org> On Behalf Of ben=40yocto.nu@dmarc.ietf.org
    Sent: Tuesday, June 29, 2021 3:47 PM
    To: Matt Joras <matt.joras@gmail.com>
    Cc: IETF QUIC WG <quic@ietf.org>
    Subject: Re: HTTP/3 Preface (PRI method)

    I understand. When connecting through QUIC using TLS, it will tell me that HTTP/3 is used. However, I see HTTP/3 as protocol that isn't just allowed on QUIC, but also still on TCP, because QUIC is a TCP-alternative. So, we look to three cases:
      - QUIC: use the ALPN code
      - TCP/SSL: use ALPN code
      - Plain TCP: What to do then? HTTP/3 directly starts with binary.

    It seems to me that HTTP should be developed like it is just an protocol, not specific made for QUIC or TCP. So in that case, there should be placed a preface somewhere.

    Matt Joras schreef op 2021-06-29 21:30:

    > Hi Ben,
    > 
    > This issue in general, if I'm understanding you correctly, is solved 
    > via the ALPN[1]. I.e., as part of the TLS handshake the server will be 
    > able to know which application is being used. For example, "h2"
    > corresponds to HTTP/2 and "h3" corresponds to HTTP/3. Also note that 
    > there are no standardized mappings of HTTP over QUIC except for the 
    > currently-pending HTTP/3 specification. Future versions of HTTP over 
    > QUIC would also be distinguished via ALPN, presumably.
    > 
    > Best,
    > Matt Joras
    > 
    > [1] https://datatracker.ietf.org/doc/html/rfc7301 
    > 
    > On Tue, Jun 29, 2021 at 12:11 PM <ben=40yocto.nu@dmarc.ietf.org> wrote:
    > 
    >> Hello all,
    >> 
    >> When reading about QUIC, it comes to me as a better alternative of 
    >> TCP, build upon UDP.
    >> In this case, servers that run on TCP could easily also run on 
    >> UDP/QUIC; think about DNS, SMTP, FTP.
    >> 
    >> Now there is also a new version of HTTP. HTTP/3. This version will be 
    >> transfered over QUIC by default.
    >> However, as I mentioned above, it could be possible to have "TCP 
    >> protocols" that use QUIC too.
    >> That makes me think about also transfering some old HTTP versions, 
    >> for example HTTP/0.9 (I came across a library that transfered 
    >> HTTP/0.9 over QUIC).
    >> But also HTTP/1.0, HTTP/1.1 and HTTP/2 are possible.
    >> 
    >> All older HTTP versions send the following request line: <METHOD> 
    >> <PATH> [VERSION] \n If an endpoint is directly accessed (without some 
    >> negotiation), it will find out the version directly by reading the 
    >> first line.
    >> For 0.9 the version will be absent. For 2.0 this will be a preface 
    >> with a PRI method and * as path.
    >> 
    >> When I think about running a HTTP server, I think about this:
    >> 
    >> TCP (80) or TCP/SSL (443):
    >> - HTTP/0.9
    >> - HTTP/1.0
    >> - HTTP/1.1
    >> - HTTP/2.0
    >> - HTTP/3.0 (I think this is possible too)
    >> 
    >> UDP/QUIC:
    >> - HTTP/0.9 (HTTP/0.9 but over QUIC)
    >> - HTTP/1.0 (HTTP/1.0 but over QUIC)
    >> - HTTP/1.1 (HTTP/1.1 but over QUIC)
    >> - HTTP/2.0 (HTTP/2.0 but over QUIC)
    >> - HTTP/3.0 (Default)
    >> 
    >> However, if I listen for all versions on my HTTP-QUIC server, how am 
    >> I supposed to know that it is HTTP/3? Does HTTP/3 has a preface? And 
    >> if not, why not?
    >> I think the preface of HTTP/2 is great and I think it would be great 
    >> in
    >> HTTP/3 too: PRI * HTTP/3.0
    >> 
    >> I would like to see a preface added to HTTP/3.0. It is only 18 extra 
    >> bytes at the beginning of the request. It could be ignored by some 
    >> servers if they want, but for servers that want to have backwards 
    >> compatibility it would be a great feature. (Luckily HTTP/3 is not a 
    >> released standard yet.)
    >> 
    >> Ben