Subject: [quicwg/base-drafts] add whitespace after semicolon in static header table (#1984)

From: Kazuho Oku <[email-masked]>
Date: Fri, 09 Nov 2018 02:04:07 -0800

This is the only position where we do not have a whitespace after semicolon, and I assume that it's an editorial error rather than an anomaly in the stats that have been used to build the table.

Hence the PR.
You can view, comment on, or merge this pull request online at:

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

-- Commit Summary --

  * whitespace after `; ` in static header table

-- File Changes --

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

-- Patch Links --

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

---

From: Dmitri Tikhonov <[email-masked]>
Date: Fri, 09 Nov 2018 06:15:23 -0800

I brought this up a while ago (IIRC, in Slack).  Apparently, this is how it's supposed to be: without the space.

-- 
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/1984#issuecomment-437371659

---

From: Mike Bishop <[email-masked]>
Date: Tue, 13 Nov 2018 19:34:59 +0000 (UTC)

It's a divergence in how it is actually used, at any rate.  Per [RFC 7231](https://tools.ietf.org/html/rfc7231#section-3.1.1.1), there's OWS before and after the semicolon, so it's valid either way. I think there's a reasonable argument to be made for consistency in one direction or the other, but if one usage is prevailing, there's little benefit in putting the other one in the static table.

-- 
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/1984#issuecomment-438406605

---

From: Mike Bishop <[email-masked]>
Date: Tue, 13 Nov 2018 11:36:25 -0800

...although it's also an interesting implementation question whether an HPACK/QPACK library could insert/remove OWS as appropriate to match existing entries in the static or dynamic table.

-- 
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/1984#issuecomment-438407103

---

From: Kazuho Oku <[email-masked]>
Date: Tue, 13 Nov 2018 19:52:22 -0800

@dtikhonov @MikeBishop Thank you for the clarifications.

I agree that putting in what is actually being used makes sense. H3 implementations that understand the semantics of `content-type` would ignore OWS, so it should not mind it being either way. QPACK implementations that do not know the semantics of `content-type` would benefit from having the something that is more frequently used on the table.

Now knowing that the issue has been raised before, I think that it might be worth clarifying in the draft that the omission of the whitespace is intentional; for example, something like: _Fifty-fourth (54th) entry sticks out by the fact that there is no whitespace after semicolon. This is intentional, based on what we observe frequently on the wire._

-- 
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/1984#issuecomment-438528202

---

From: MikkelFJ <[email-masked]>
Date: Wed, 14 Nov 2018 00:24:24 -0800

Future apps would eventually learn a ws pattern. By not being consistent this can never happen. Even if short it would be more efficient with stat based match, the total long term cost is probably larger.

-- 
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/1984#issuecomment-438577495

---

From: Kazuho Oku <[email-masked]>
Date: Wed, 14 Nov 2018 01:04:10 -0800

> Future apps would eventually learn a ws pattern. By not being consistent this can never happen.

The long-term direction of HTTP WG is to use binary format for representing the structure of each header field (rather than using "structured text" with separators). QPACK is a short- to middle-term solution and IMO adopting what is on the wire seems reasonable.

-- 
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/1984#issuecomment-438588309

---

From: afrind <[email-masked]>
Date: Tue, 27 Nov 2018 15:22:07 -0800

I think it's pretty unlikely anyone is going to figure out that they can save bytes on the wire by adding a space to their header value.  We decided to use the real world to guide the contents of the table.  In other cases where we felt the table was encouraging bad practice, we dropped the header from the table.  But if this one is "too important" to drop, the it's probably "too important" to change from common to canonical usage for the sake of consistency or encouraging better practice.

-- 
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/1984#issuecomment-442256652