Re: [Last-Call] Genart last call review of draft-ietf-quic-http-32

Lucas Pardue <lucaspardue.24.7@gmail.com> Sun, 15 November 2020 19:02 UTC

Return-Path: <lucaspardue.24.7@gmail.com>
X-Original-To: last-call@ietfa.amsl.com
Delivered-To: last-call@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EBD823A097B; Sun, 15 Nov 2020 11:02:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.847
X-Spam-Level:
X-Spam-Status: No, score=-1.847 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2IDUl9WKYUmr; Sun, 15 Nov 2020 11:02:36 -0800 (PST)
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com [IPv6:2a00:1450:4864:20::536]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 446063A097A; Sun, 15 Nov 2020 11:02:32 -0800 (PST)
Received: by mail-ed1-x536.google.com with SMTP id a15so16517039edy.1; Sun, 15 Nov 2020 11:02:32 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=bc14M09n4ZYMpftfDdagViCrWe+7IUzRr4GXVPALLTc=; b=Fmzr1IyR7uwOpR60UouKx5ZLCX+q8PwLKeBYi98O4lk+AbAi/jO5LGiyVUy+wwnbMs hNUS3Aswq8J6MZRhRPSTaBObWpCtXFykglvWiWvQSkj0ZauVwk+gZNgz2AhE4b+DevTJ zI33D7dRgDNOLKNKXsrwQOfgmN4c+tCJVTGL2RGSLJI1CsrYHIH+B3Fwr5vbqUTJrv57 HyXtW2m1iC9RkTVOwUJGj2wU0PfjNk5S0TOZmjUe1LHBB6cuHfuYtk+84JCUz8ZK2u+7 mZ1DCKq3VqVT4WV9VMoCJbopuQdH6JBEf5JCE/UZOxK4RNrRfZ2IAMnCcO1EcNGvbFIT lJRQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=bc14M09n4ZYMpftfDdagViCrWe+7IUzRr4GXVPALLTc=; b=pZyJiTgQGw4xMfDzYEVlR2d+7Mrp8mOnBvbvtpD+JvEmp2Nvv4b7JjavUzakEGVhmI UOCuTtkHZSzf+GQoY9qPl6qry1Svxi2QsStdVZ56cAH6zzWHTpM7tX4zBIFRqnHvhH6n bM46zT8hX6XWrbJXwm1T9eVBbiggN9p5idAhmGya25xl/pN9nVUx5TjRNUfV14GLCKlV Ol9Jef9EN7ytV0JKNMKxaUibgycRlD6TLi1HaeamzR/PyEgy4duJPPtIHtIubZljGS4g Siv8xfath7+em3ntHPPyLDmByc8Y82gTSyMTUyt5+G14dxLTi2s3XWT9RxLNUxwCX0y5 eWcg==
X-Gm-Message-State: AOAM53008DGi0uP7g29lEZJZ1Lswp55tg1WuJeaGxNtLL4stJkYlWOiv ZQg5JsdH+XwsEPATcTFTvey3n3egzydmWFQXDbY=
X-Google-Smtp-Source: ABdhPJxajcW9NX4IxBxgz53+zGa677aWCl9ab5QxvKvo+NiZH0X+P7N5BJ9ylZ3b7aGLxlF8Hk/rzu4ANPZSzzagb+0=
X-Received: by 2002:a05:6402:1a33:: with SMTP id be19mr13046725edb.47.1605466950457; Sun, 15 Nov 2020 11:02:30 -0800 (PST)
MIME-Version: 1.0
References: <160546479248.16558.8887543649783073280@ietfa.amsl.com>
In-Reply-To: <160546479248.16558.8887543649783073280@ietfa.amsl.com>
From: Lucas Pardue <lucaspardue.24.7@gmail.com>
Date: Sun, 15 Nov 2020 19:02:18 +0000
Message-ID: <CALGR9oZ0cUdfk4+DoKa21hZ+KFu6=Zpf-_j-JKBOkHkp9RGw+g@mail.gmail.com>
To: Theresa Enghardt <ietf@tenghardt.net>
Cc: gen-art@ietf.org, QUIC WG <quic@ietf.org>, last-call@ietf.org, draft-ietf-quic-http.all@ietf.org
Content-Type: multipart/alternative; boundary="00000000000047e03905b429e7ee"
Archived-At: <https://mailarchive.ietf.org/arch/msg/last-call/kOWBgAznO6LSndSh66odfGU_8ZA>
Subject: Re: [Last-Call] Genart last call review of draft-ietf-quic-http-32
X-BeenThere: last-call@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF Last Calls <last-call.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/last-call>, <mailto:last-call-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/last-call/>
List-Post: <mailto:last-call@ietf.org>
List-Help: <mailto:last-call-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/last-call>, <mailto:last-call-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 15 Nov 2020 19:02:38 -0000

Hi Theresa,

Thanks for the review! Since the QUIC WG uses a Github Workflow I've
created a separate issue for each of the items in your review and tagged
you in it, see in-line responses for the precise issue link. All issues are
track in the milestone https://github.com/quicwg/base-drafts/milestone/9

We'd appreciate it if you could coordinate with the HTTP document editor
via GitHub, on the issue itself and/or any Pull Request that might be
raised to address your comments.



On Sun, Nov 15, 2020 at 6:26 PM Theresa Enghardt via Datatracker <
noreply@ietf.org> wrote:

> <snip>
>
> Minor issues:
>
> The document defines "stream" as a QUIC stream, but then also uses the term
> "HTTP/3 stream". Perhaps it's worth defining "HTTP/3 stream" explicitly, in
> analogy to "HTTP/3 connection". Perhaps it's worth defining "message", too
> (this is only an HTTP concept, correct?).
>
> The document should make sure it clearly distinguishes terms and concept of
> QUIC vs. of HTTP/3 in all cases. In particular, what is the relationship
> between HTTP/3 frames and QUIC frames? It's important to make their
> difference
> and relationship explicit, as the document uses several other terms
> interchangeably between HTTP/3 and QUIC, like "connection" and perhaps
> "stream".
>

https://github.com/quicwg/base-drafts/issues/4351


>
> The concepts around error codes is not entirely clear to me, e.g.,
> H3_REQUEST_INCOMPLETE or H3_NO_ERROR - Are these a separate concept from
> HTTP
> response status codes such as "200 OK" and "404 Not Found", etc.? Are these
> error codes related to QUIC errors? Is the "application error code"
> mentioned
> in Section 5.3 the same concept or is it a different concept? Is the
> "application error code" an HTTP/3 concept of a QUIC concept? Is
> "connection
> error" used in Section 7 the same concept or is it a difference concept?
> Does a
> "connection error" as used in Section 7 always mean that the entire
> connection
> fails, as opposed to a single stream? Section 8 aims to explain some of
> these
> concepts, and I think the document should reference to this section for
> more
> information when it starts mentioning all these different error types.
> (Or, if
> they are all the same, perhaps the terminology should be unified.)
>

https://github.com/quicwg/base-drafts/issues/4352


>
> Section 4.1.1.
>
> "HTTP messages carry metadata as a series of key-value pairs, called HTTP
> fields." Are these the same as HTTP headers and trailers? Or are HTTP
> fields a
> more general concept? Are they also allowed in bodies?
>

https://github.com/quicwg/base-drafts/issues/4353


> Section 4.1.1.3
>
> "because this limit is applied at each hop," ...
> What is a hop in the context of HTTP? I think it's worth at least briefly
> introducing this concept to make things clearer, as the document includes
> many
> different concepts from different layers.
>

https://github.com/quicwg/base-drafts/issues/4354


> Section 4.1.2
>
> "Automatically retrying such requests is
>    not possible, unless this is otherwise permitted (e.g., idempotent
>    actions like GET, PUT, or DELETE)."
> Retrying is "not possible" means it's prohibited? Is there a reference to
> the
> exceptions to that rule, e.g., a list of actions that are considered
> idempotent? If so, please provide a reference.
>

https://github.com/quicwg/base-drafts/issues/4355


> Section 4.2
>
> "A proxy that supports CONNECT establishes a TCP connection […]"
> Is this necessarily always TCP, not QUIC? Can this change in the future?
>

<goog_722064023>
https://github.com/quicwg/base-drafts/issues/4356


> Section 5.1
>
> "HTTP/3 implementations will need to open a new HTTP/3
>    connection for new requests if the existing connection has been idle
>    for longer than the server's advertised idle timeout"
> Only the server's timeout? Does "implementations" here mean only clients?
>

https://github.com/quicwg/base-drafts/issues/4357


>
Section 6.2
>
> "However, stream types that could modify the state or
>    semantics of existing protocol components, including QPACK or other
>    extensions, MUST NOT be sent until the peer is known to support them."
> Is there a defined list of stream types that are not allowed to be used?
> If so,
> please provide a reference.
>
> Is section 6 missing the request stream? It has subsections for Control
> Streams
> and Push Streams, but then Section 7 says that Request Stream is also a
> stream
> type.
>

<goog_722064019>
https://github.com/quicwg/base-drafts/issues/4358

Kind regards,
Lucas
QUIC WG Co-chair