Subject: [quicwg/base-drafts] Require that QPACK preserves header field order. (#1725)

From: Bence Béky <[email-masked]>
Date: Thu, 06 Sep 2018 07:55:24 -0700

Fixes #1684.

1. Rename "header" to "header field" in the definition section, just
like in HPACK, RFC7541 Section 1.3.  Note that already before this
change the term "header field" appears 44 times in the text.

2. Rename "header set" to "header list" and define it to be ordered and
explicitly allow duplicate header fields, not unlike in HPACK, RFC7541
Section 1.3.  Also explicitly allow header fields with identical name.

3. Add a paragraph to require that ordering is preserved, much like
HPACK, RFC7541 Section 2.1.
You can view, comment on, or merge this pull request online at:

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

-- Commit Summary --

  * Require that QPACK preserves header field order.

-- File Changes --

    M draft-ietf-quic-qpack.md (19)

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/1725.patch
https://github.com/quicwg/base-drafts/pull/1725.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/1725

---

From: afrind <[email-masked]>
Date: Thu, 06 Sep 2018 20:00:18 +0000 (UTC)

afrind commented on this pull request.

-: The full collection of headers associated with an HTTP message.
+: The ordered collection of header fields associated with an HTTP message.  A
+  header list can contain multiple header fields with identical name, or

names

> @@ -101,6 +101,11 @@ balance between resilience against head-of-line blocking and optimal compression
 ratio.  The design goals are to closely approach the compression ratio of HPACK
 with substantially less head-of-line blocking under the same loss conditions.
 
+QPACK preserves the ordering of header fields within each header list.  An

Wondering if this belongs in the introduction or would be better off elsewhere.  Off hand I don't see a section where it belongs -- HPACK has a 'Compression Process Overview' that includes this text.  Perhaps we can rename section 2 "Header Tables" to be something like "Overview" and it would fit better there.  I'm inclined to take this as is and we can do some document reorganization later.

-- 
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/1725#pullrequestreview-153094164

---

From: Bence Béky <[email-masked]>
Date: Thu, 06 Sep 2018 13:12:51 -0700

bencebeky commented on this pull request.

Hm not sure.  Consider
h1 = {"a", "value1"}
h2 = {"a", "value2"}
Now h1 and h2 are header fields that have identical names, that is, h1.name and h2.name are two names that are identical, or do they have identical name, that is, the single name "a" is both the name of h1 and h2?

Maybe I'm overthinking.  I'm not a native speaker so if you still think "names" is more appropriate I'm happy to change 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/1725#discussion_r215761869

---

From: afrind <[email-masked]>
Date: Thu, 06 Sep 2018 15:16:16 -0700

I'm not a grammar expert but I think identical implies comparing two or more things so it needs to be plural?

-- 
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/1725#discussion_r215795363

---

From: Martin Thomson <[email-masked]>
Date: Thu, 06 Sep 2018 17:01:32 -0700

martinthomson commented on this pull request.

grammar-wise "identical names" is always correct, "an identical name" would be the alternative, but then you have to identify one or other by context.

Editorially, I agree with Alan, this isn't that important enough for space in the intro, and that it can be fixed later.

Generally, we don't say anything normative in the introduction either.  The MUST pieces belong much further down.  Making a new section called "Ordering" in Section 2 would work.

-- 
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/1725#discussion_r215812094

---

From: Bence Béky <[email-masked]>
Date: Fri, 07 Sep 2018 07:10:20 -0700

@bencebeky pushed 1 commit.

98e2791  same name

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/1725/files/3825fd1237a287160ff92eec48b93e27ffacef27..98e279173603e5e3dd3197697e414468ec99bd5c

---

From: Bence Béky <[email-masked]>
Date: Fri, 07 Sep 2018 07:15:47 -0700

I reworded it to "same name" which sounds less pedantic.  I also broke this into two sentences to flow better.  I wish I was able to find a simpler way of phrasing this.

-- 
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/1725#discussion_r215973132

---

From: Bence Béky <[email-masked]>
Date: Fri, 07 Sep 2018 07:22:57 -0700

I agree that some reorganization might be beneficial.  Also, one might consider swapping section 2 and 3, or even merging "conventions and definitions" into section 1 just like it is done in RFC7541.

-- 
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/1725#discussion_r215975401

---

From: afrind <[email-masked]>
Date: Mon, 10 Sep 2018 12:44:51 -0700

Merged #1725 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/1725#event-1836890863