Subject: [quicwg/base-drafts] Resolve normative references to HTTP/1.1 spec (#4747)

From: Mike Bishop <[email-masked]>
Date: Fri, 15 Jan 2021 13:59:05 -0800

Three of these are simple -- origin and asterisk form lives in Semantics now, and we didn&#39;t get an update to the new pointer.  Those are in the first commit.

The second commit might be more controversial.  See #4746.
You can view, comment on, or merge this pull request online at:

  https://github.com/quicwg/base-drafts/pull/4747

-- Commit Summary --

  * Asterisk/origin form are now in Semantics
  * Transfer codings are an HTTP/1.1 thing

-- File Changes --

    M draft-ietf-quic-http.md (18)

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/4747.patch
https://github.com/quicwg/base-drafts/pull/4747.diff

-- 
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/pull/4747

---

From: Martin Thomson <[email-masked]>
Date: Fri, 15 Jan 2021 22:40:08 -0800

@martinthomson approved this pull request.

-- 
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/pull/4747#pullrequestreview-569817854

---

From: Kazuho Oku <[email-masked]>
Date: Mon, 18 Jan 2021 00:59:00 -0800

@kazuho commented on this pull request.

> @@ -472,8 +472,8 @@ table. While these updates are not directly part of the message exchange, they
 must be received and processed before the message can be consumed.  See
 {{header-formatting}} for more details.
 
-The "chunked" transfer encoding defined in Section 7.1 of {{?HTTP11}} MUST NOT
-be used.
+Transfer codings (see Section 6.1 of {{?HTTP11}}) are not defined for HTTP/3;
+the Transfer-Encoding header field MUST NOT be used.

I'm not sure if this MUST NOT aligns well with the existing requirements in [section 4.1.1](https://quicwg.org/base-drafts/draft-ietf-quic-http.html#name-field-formatting-and-compre) that states _endpoints MUST NOT generate_, _intermediaries SHOULD remove_.

If the intended requirements are:
* endpoints MUST NOT generate requests that contain connection-specific header fields (e.g., transfer-encoding)
* intermediaries MUST NOT forward chunked encoding without decoding it and SHOULD remove connection-specific header fields
then I think it might be better to explicitly state as such, possibly in section 4.1.1 altogether.

-- 
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/pull/4747#pullrequestreview-570282654

---

From: Mike Bishop <[email-masked]>
Date: Tue, 19 Jan 2021 08:02:51 -0800

@MikeBishop commented on this pull request.

That's an interesting point.  I think that's an instance of a non-deterministic SHOULD, rather than an optional behavior per se.  In other words, to make that a MUST, we'd have to have a pointer to the complete list of headers which MUST be removed, and since headers are an extension point, there's no such document.  Someone could define a new hop-by-hop header for HTTP/1.1 and all implementations would instantly be violating this requirement.

In other words, this SHOULD ought to be read as "intermediaries MUST remove all the headers known to be connection-specific, but an intermediary might not know the meaning of every header generated by the endpoint."  If there's better language for that section, I'd welcome a PR with clearer text.

I'm okay with the language for Transfer-Encoding being stronger than the SHOULD which covers the class of hop-by-hop headers; we already have something of an instance of this with Upgrade; it's also covered by the SHOULD in 4.1.1 but 4.3 says it's not supported.  (Perhaps 4.3 should have a MUST about the Upgrade header and the 101 status code...?)

-- 
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/pull/4747#discussion_r560289484

---

From: Mike Bishop <[email-masked]>
Date: Tue, 19 Jan 2021 08:05:27 -0800

@MikeBishop pushed 1 commit.

282081d050198e5be9844113984cec5840b57cc9  Call out transfer codings in 4.1.1

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/4747/files/7f7f864fe763c4d7bff346539435111555d93d4c..282081d050198e5be9844113984cec5840b57cc9

---

From: Martin Thomson <[email-masked]>
Date: Tue, 19 Jan 2021 13:15:19 -0800

@martinthomson commented on this pull request.

I think that the tweak to translation behaviour is probably necessary.  I'll be opening a bug on h2 as well.

>  This means that an intermediary transforming an HTTP/1.x message to HTTP/3 will
 need to remove any fields nominated by the Connection field, along with the

The "will need to" here now reads like RFC 6919 language.  Why not MUST?

-- 
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/pull/4747#pullrequestreview-571665722

---

From: Mike Bishop <[email-masked]>
Date: Tue, 19 Jan 2021 13:31:59 -0800

ea14083ca11e2cc99915a01549c746e37c9e18dc  Less 6919, more 2119

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/4747/files/282081d050198e5be9844113984cec5840b57cc9..ea14083ca11e2cc99915a01549c746e37c9e18dc

---

From: Mike Bishop <[email-masked]>
Date: Tue, 19 Jan 2021 13:32:10 -0800

Works for me.

-- 
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/pull/4747#discussion_r560509760

---

From: Kazuho Oku <[email-masked]>
Date: Tue, 19 Jan 2021 15:45:44 -0800

@kazuho approved this pull request.

@MikeBishop Thank you for your comments and the changes.

I agree about the intent, and I am fine with retaining the SHOULD that we already have. I also like the updated text in the other section that explicitly states that intermediaries "MUST decode and remove transfer encodings."

-- 
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/pull/4747#pullrequestreview-571759301

---

From: Mike Bishop <[email-masked]>
Date: Thu, 21 Jan 2021 08:37:38 -0800

ebaeca0c77381bbe13d8cf9c60b5fafcc94630b7  Refer to SEMANTICS for hop-by-hop stripping rules

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/4747/files/ea14083ca11e2cc99915a01549c746e37c9e18dc..ebaeca0c77381bbe13d8cf9c60b5fafcc94630b7

---

From: Mike Bishop <[email-masked]>
Date: Thu, 21 Jan 2021 08:45:23 -0800

@kazuho, just a heads-up that this is aligning with http2-bis in referencing SEMANTICS, which says...

> Furthermore, intermediaries SHOULD remove or replace field(s) whose semantics are known to require removal before forwarding, whether or not they appear as a Connection option, **after applying those fields' semantics.**

I'm not totally thrilled with dropping that back to a SHOULD, but it has the caveat that requests will look malformed if you don't, so I think it covers it.

-- 
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/pull/4747#issuecomment-764782063

---

From: Mike Bishop <[email-masked]>
Date: Tue, 26 Jan 2021 15:58:54 -0800

Merged #4747 into master.

-- 
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/pull/4747#event-4253277534