Re: [Moq] Exploring HTTP/3
Lucas Pardue <lucaspardue.24.7@gmail.com> Thu, 09 February 2023 19:03 UTC
Return-Path: <lucaspardue.24.7@gmail.com>
X-Original-To: moq@ietfa.amsl.com
Delivered-To: moq@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3217EC13A8D3 for <moq@ietfa.amsl.com>; Thu, 9 Feb 2023 11:03:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.844
X-Spam-Level:
X-Spam-Status: No, score=-6.844 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id F7scO69sFbOZ for <moq@ietfa.amsl.com>; Thu, 9 Feb 2023 11:03:10 -0800 (PST)
Received: from mail-oa1-x2f.google.com (mail-oa1-x2f.google.com [IPv6:2001:4860:4864:20::2f]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0E7EAC1522B9 for <moq@ietf.org>; Thu, 9 Feb 2023 11:03:10 -0800 (PST)
Received: by mail-oa1-x2f.google.com with SMTP id 586e51a60fabf-16a7f5b6882so3789331fac.10 for <moq@ietf.org>; Thu, 09 Feb 2023 11:03:10 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=vJv8pA2ktFCZgvWpEdWU5XdasavQzY8g6nxi3XMQydo=; b=e75v8LjCt2DRBDnV1mu2Rw3+P5X+YbwKj1YNEyM1zkt6JUw46pmKFfiX7Z7eTwy3r8 FWZvDp8yTDBWgKf+RICe1ixteIVPpmSgDyUsUhYZ5bCwm2GnTfnqvUXB+qRA6Au/Nrvl 5ohh3nlMGLfwFqjoOvpYWbQVc7/genA3CabWSure40+KM1QPgJhlX4+cMSLWGTY75Tfb eaiJPYi1qCFDSRSHNFmIYhjz5tTe28QN8IR93HZLV2162I5EF8GJVRdQHfXqfRK2AMy0 PSE6iBIxQuE1R82+/fKYcaJ2uHf2ZZWgFpkJXr147SbrYf8iKDRbA2Cn60S6vnUxKcCI jLvw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=vJv8pA2ktFCZgvWpEdWU5XdasavQzY8g6nxi3XMQydo=; b=Wq+mqLX0kBAoxyg/ZH9EGbbrdoZibGRziA+zwewubdfbfyle2o+i8Y9fFI6ClNFmwX fdf9OD+8aSjiqMMDksL5xDD3j1x0qHUl6wVT19PofLna4woP9B3An9MPAeiX3psvwuwV sObQu1p9VccyNMvoGURCPDFXR1oi5tRnhiugAUnq6vRe8FgVNPG3uvxVsDiQl46yhf/Z 2OPcfwLn3qYvh3veVfWUr5Q3oVmEow3oOHYYaI5O9cQXekoHKK8DSIaQqi/2kdXwigk9 Nmoj8gmPZ07PWuXFYeYN1lNcJRgVAYjMPJ6+ULNlhDpUpbkrCTS28ABQjpHq6BJPfo1W 1X6Q==
X-Gm-Message-State: AO0yUKUmWoZtS1PKbyiOLPujVBn35xic4gSW01lJQ0ps5BFCJKL+93/M hdpsqsiNi/eGWAEuaJ/nMKJ8q8yxKPmGm0OAOcU=
X-Google-Smtp-Source: AK7set/35+5XufWY/4gRGLApJh8ZJjxf1BXzhS4Lp9Y3SiERr4pU+aejSDqgoZvWZuPvfYxCWBsqea1w4ouGOxwGmEo=
X-Received: by 2002:a05:6870:9a0b:b0:163:8da0:65ad with SMTP id fo11-20020a0568709a0b00b001638da065admr1378424oab.240.1675969389171; Thu, 09 Feb 2023 11:03:09 -0800 (PST)
MIME-Version: 1.0
References: <CAHVo=ZmD7KvKxh2tTeaM2B+0q9=qZPgBydmfaHor5MaPODZf6w@mail.gmail.com> <CALGR9oas8cMBrX1WVf64fH13jr1r-S0KQB5spNzFj41k9Lgk+A@mail.gmail.com> <CAHVo=Z=Nov7B24A=M2pxPnUgyBg3n-AjF8AD2mKwgbTQ81F+mA@mail.gmail.com> <CALGR9ob4i7Z8zuqFVHtzOGV3QMTFjvOK4uZW3Xfvb5ZsoULvMg@mail.gmail.com> <CAKKJt-eC=h20Va4+64r=zkhYXK_ypC+txLqzgpr+YL=HW-DD+g@mail.gmail.com> <CALGR9oYr2OZZcfmFdqLgQ0Uqu7pAwQTnbuf-Fm64m58Spe6xYw@mail.gmail.com> <CAKKJt-cZrChaHwrY0KPwJiKdf9RRJ3+YA6y0iSjLiuxSwAHGqA@mail.gmail.com>
In-Reply-To: <CAKKJt-cZrChaHwrY0KPwJiKdf9RRJ3+YA6y0iSjLiuxSwAHGqA@mail.gmail.com>
From: Lucas Pardue <lucaspardue.24.7@gmail.com>
Date: Thu, 09 Feb 2023 19:02:57 +0000
Message-ID: <CALGR9oZ_vf47Oqwn5CMt=4L4EhL2WsRBdZUrqj+iDWEDn3JpeQ@mail.gmail.com>
To: Spencer Dawkins at IETF <spencerdawkins.ietf@gmail.com>
Cc: Luke Curley <kixelated@gmail.com>, MOQ Mailing List <moq@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000189ba605f449087f"
Archived-At: <https://mailarchive.ietf.org/arch/msg/moq/dDoPXvu4JKgMnmlh-Zyv4UjUp_8>
Subject: Re: [Moq] Exploring HTTP/3
X-BeenThere: moq@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Media over QUIC <moq.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/moq>, <mailto:moq-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/moq/>
List-Post: <mailto:moq@ietf.org>
List-Help: <mailto:moq-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/moq>, <mailto:moq-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Feb 2023 19:03:14 -0000
Hi Spencer, snipping for clarity On Thu, Feb 9, 2023 at 6:16 PM Spencer Dawkins at IETF < spencerdawkins.ietf@gmail.com> wrote: > Hi, Lucas, > > On Thu, Feb 9, 2023 at 10:36 AM Lucas Pardue <lucaspardue.24.7@gmail.com> > wrote: > >> Hey Spencer, >> > At the HTTP semantic layer, the version doesn't really matter, your > request or response objects get transferred around. The same scheme value > "https" works for all versions. Under the hood there's lots of differences > and complexity of course. The Fetch API feels about the right layer of > abstraction for most purposes. > >> >> My sense so far has been that QUIC is providing unique qualities that >> the MoQ protocol (whatever it is) wants to harness. If that's true, HTTP/3 >> is a hard requirement of an HTTP-based MoQ protocol, then we'd have work to >> do in the web platform to ensure its abstractions don't get in the way. >> > > I understand less about Web APIs than I would like to understand - that > could change, but so far, it hasn't. So, perhaps, I should be deferring to > Bernard and Victor (two of the current WebTransport specification editors), > but you know me. So I'll ask the question, and let more knowledgeable folks > explain what I really meant, or just say "Spencer doesn't understand Web > APIs". > > Looking at https://www.w3.org/TR/webtransport/#protocol-concepts, it > looks like WebTransport is intended to run over HTTP/3, and in > https://www.w3.org/TR/webtransport/#web-transport-configuration, there'sa *requireUnreliable > *WebTransportOptions boolean attribute, that says, if "set to true, the > WebTransport connection cannot be established over HTTP/2 if an HTTP/3 > connection is not possible." > > I understood your previous point to be that an application doesn't have a > way to say "use HTTP/3 if you can". Was I misunderstanding your point, or > the specification? > The W3C WebTransport API does give us more control over things, I think it can work. The shortest way I can articulate my point is that WebTransport over HTTP/3 is not HTTP. It switches operational modes. Web APIs for dealing with HTTP are different from WebTransport. For instance, fetch [1] using an example from MDN [2] fetch('https://example.com/movies.json') .then((response) => response.json()) .then((data) => console.log(data)); This is a short-hand way to construct a Request object for the resource /movies.json at the host example.com, using any transport and application protocol that can fit the security needs of HTTPS (i.e. TCP+TLS+HTTP/1.1, TCP+TLS+HTTP/2, QUIC+HTTP/3). If a successful response is returned by the server, the remaining actions convert it to JSON and print it. There are lots of other things that could be done with the response, like treating it as a stream that can be piped to something else (like a web codec) etc. The request could cause a new connection to be made to the server that is authoritative for example.com, or it could be sent over an existing connection if one existed. This decision making is mostly in the hands of the implementation (they are subject to certain requirements, but they are distracting). The important part is that the HTTP version is up to the client (i.e. the browser). While the request can be customised to some extent, there's not a way for javascript to directly ask "please issue this request and ensure it is on a HTTP connection of version X, and that it is coalesced in the same connection and if you can't do that, fail and give me back control to decide what to do". I'm not trying to pick on the web here either. There's many non-browser clients that offer different abstraction levels for speaking HTTP. Some do under-the-hood connection pooling. Some don't and let the user be very specific about all facets of the request I hope this makes it clearer what the differing capabilities I'm talking about are. But if not I will try to explain it a different way, because we might want to use that as input into a change request :-) Cheers, Lucas [1] - https://fetch.spec.whatwg.org/ [2] - https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
- Re: [Moq] Exploring HTTP/3 Lucas Pardue
- [Moq] Exploring HTTP/3 Luke Curley
- Re: [Moq] Exploring HTTP/3 Spencer Dawkins at IETF
- Re: [Moq] Exploring HTTP/3 Luke Curley
- Re: [Moq] Exploring HTTP/3 Ali C. Begen
- Re: [Moq] Exploring HTTP/3 Lucas Pardue
- Re: [Moq] Exploring HTTP/3 Victor Vasiliev
- Re: [Moq] Exploring HTTP/3 Roberto Peon
- Re: [Moq] Exploring HTTP/3 Lucas Pardue
- Re: [Moq] Exploring HTTP/3 Roberto Peon
- Re: [Moq] Exploring HTTP/3 Ali C. Begen
- Re: [Moq] Exploring HTTP/3 Roberto Peon
- Re: [Moq] Exploring HTTP/3 Ali C. Begen
- Re: [Moq] Exploring HTTP/3 Mark Nottingham
- Re: [Moq] Exploring HTTP/3 Spencer Dawkins at IETF
- Re: [Moq] Exploring HTTP/3 Lucas Pardue
- Re: [Moq] Exploring HTTP/3 Luke Curley
- Re: [Moq] Exploring HTTP/3 Roberto Peon
- Re: [Moq] Exploring HTTP/3 Bernard Aboba
- Re: [Moq] Exploring HTTP/3 Spencer Dawkins at IETF
- Re: [Moq] Exploring HTTP/3 Bernard Aboba
- Re: [Moq] Exploring HTTP/3 Spencer Dawkins at IETF
- Re: [Moq] Exploring HTTP/3 Lucas Pardue
- Re: [Moq] Exploring HTTP/3 Charles 'Buck' Krasic
- Re: [Moq] Exploring HTTP/3 Roberto Peon
- Re: [Moq] Exploring HTTP/3 Roberto Peon
- Re: [Moq] Exploring HTTP/3 Luke Curley
- Re: [Moq] Exploring HTTP/3 Luke Curley
- Re: [Moq] Exploring HTTP/3 Christian Huitema
- Re: [Moq] Exploring HTTP/3 Victor Vasiliev
- Re: [Moq] Exploring HTTP/3 Suhas Nandakumar