Re: [quicwg/base-drafts] Reduce HTTP/3 editorial dependence on HTTP/2 (#3264)

Mike Bishop <notifications@github.com> Tue, 07 January 2020 21:45 UTC

Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 431BB120147 for <quic-issues@ietfa.amsl.com>; Tue, 7 Jan 2020 13:45:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8
X-Spam-Level:
X-Spam-Status: No, score=-8 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.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 2ywI6fsd5VAI for <quic-issues@ietfa.amsl.com>; Tue, 7 Jan 2020 13:45:03 -0800 (PST)
Received: from out-4.smtp.github.com (out-4.smtp.github.com [192.30.252.195]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 11E351200E7 for <quic-issues@ietf.org>; Tue, 7 Jan 2020 13:45:03 -0800 (PST)
Received: from github-lowworker-f144ac1.va3-iad.github.net (github-lowworker-f144ac1.va3-iad.github.net [10.48.16.59]) by smtp.github.com (Postfix) with ESMTP id 74A75C6078B for <quic-issues@ietf.org>; Tue, 7 Jan 2020 13:45:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1578433502; bh=AyOXdYe15LpuJVvEFa1sfZ3xQdFiMmlr/1FLKm0mkCk=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=QHgBhqujj7Oj3IsMBtqHwL9Bi+3XJaDAgKFSIkjlalC/ZRFo9wGjLGZWXMeRsbvGP Gvk0acYW4Dy2fSAZQaL/W7GjsS5At2RDrA5RxjL3yO/V8qGvOwL1W43izzANp98KfZ 56xUpPEw2ie3uLVOg9/zNCOL+y46RNf4GHCqOlGk=
Date: Tue, 07 Jan 2020 13:45:02 -0800
From: Mike Bishop <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK47SU422S64IWJLU3F4EIXF5EVBNHHB6RWN54@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/3264/571787247@github.com>
In-Reply-To: <quicwg/base-drafts/issues/3264@github.com>
References: <quicwg/base-drafts/issues/3264@github.com>
Subject: Re: [quicwg/base-drafts] Reduce HTTP/3 editorial dependence on HTTP/2 (#3264)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5e14fbde6646d_6ae13f8e938cd9603851e4"; charset=UTF-8
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: MikeBishop
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/NaMPxlycdrXaT47V1cvQeNkZkBU>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 07 Jan 2020 21:45:05 -0000

    QUIC is described in {{QUIC-TRANSPORT}}.  For a full description of HTTP/2, see
    {{!HTTP2=RFC7540}}.

Pretty clearly informative.

    Server push is an interaction mode introduced in HTTP/2 {{!HTTP2}} which permits
    a server to push a request-response exchange to a client in anticipation of the
    client making the indicated request.  This trades off network usage against a
    potential latency gain.  Several HTTP/3 frames are used to manage server push,
    such as PUSH_PROMISE, DUPLICATE_PUSH, MAX_PUSH_ID, and CANCEL_PUSH.

*Probably* informative.

    A server that does not wish clients to reuse connections for a particular origin
    can indicate that it is not authoritative for a request by sending a 421
    (Misdirected Request) status code in response to the request (see Section 9.1.2
    of {{!HTTP2}}).
    
    The considerations discussed in Section 9.1 of {{!HTTP2}} also apply to the
    management of HTTP/3 connections.

Just referencing the definition of the existing response code could go either way.  Might want to copy over the connection management advice.

    As in HTTP/2, HTTP/3 uses special pseudo-header fields beginning with the ':'
    character (ASCII 0x3a) to convey the target URI, the method of the request, and
    the status code for the response.  These pseudo-header fields are defined in
    Section 8.1.2.3 and 8.1.2.4 of {{!HTTP2}}. Pseudo-header fields are not HTTP
    header fields.  Endpoints MUST NOT generate pseudo-header fields other than
    those defined in {{!HTTP2}}.  The restrictions on the use of pseudo-header
    fields in Section 8.1.2 of {{!HTTP2}} also apply to HTTP/3.  Messages which
    are considered malformed under these restrictions are handled as described in
    {{malformed}}.

This definitely would require copying text; it's a purely normative reference to a specific section of RFC 7540.

    To allow for better compression efficiency, the cookie header field {{!RFC6265}}
    MAY be split into separate header fields, each with one or more cookie-pairs,
    before compression. If a decompressed header list contains multiple cookie
    header fields, these MUST be concatenated before being passed into a non-HTTP/2,
    non-HTTP/3 context, as described in {{!HTTP2}}, Section 8.1.2.5.

This might require some text copying, or might be informative -- I'd have to read the section in more detail.

    A CONNECT request in HTTP/3 functions in the same manner as in HTTP/2. The
    request MUST be formatted as described in {{!HTTP2}}, Section 8.3. A CONNECT
    request that does not conform to these restrictions is malformed (see
    {{malformed}}). The request stream MUST NOT be closed at the end of the request.

This would require text copying.

    Server push is an interaction mode introduced in HTTP/2 {{!HTTP2}} which permits
    a server to push a request-response exchange to a client in anticipation of the
    client making the indicated request.  This trades off network usage against a
    potential latency gain.  HTTP/3 server push is similar to what is described in
    HTTP/2 {{!HTTP2}}, but uses different mechanisms.

This is purely informative.

    The header of the request message is carried by a PUSH_PROMISE frame (see
    {{frame-push-promise}}) on the request stream which generated the push. This
    allows the server push to be associated with a client request.  Promised
    requests MUST conform to the requirements in Section 8.2 of {{!HTTP2}}.

Requires text copying.

    The security considerations of HTTP/3 should be comparable to those of HTTP/2
    with TLS; the considerations from Section 10 of {{!HTTP2}} apply in addition to
    those listed here.

Seems kind of borderline -- this isn't really normative text, but you really should read the security considerations.

All the references in IANA Considerations and H2 Considerations are explicitly informative, so the switch would be easy there.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/3264#issuecomment-571787247