Subject: Encouraging a healthy HTTP/2 ecosystem

From: William Chan (陈智昌) <[email-masked]>
Date: Mon, 30 Jun 2014 20:37:21 -0700

This has come up in a number of different discussions over time, and I
thought it'd be nice to gather a list of things that it'd be useful if
major implementations did in order to keep the ecosystem healthy. My
interest is that, before lots of other vendors start implementing HTTP/2
and we start getting a plethora of crappy implementations doing dumb things
and see actual deployment, we try to enforce good behavior so that when
they deploy and do stupid things, it breaks for them. I don't want HTTP/2
to ossify the way that TCP options have essentially become undeployable.
Here are some ideas for things to do:

* In order to encourage sites to do feature detection as opposed to UA
sniffing, it'd be nice if major client implementations, some percentage of
the time, choose not to negotiate HTTP/2.
* In order to prevent the extension mechanism from failing (due to
intermediaries whitelisting extensions and disallowing all others, or some
other sort of brokenness), it'd be nice for clients to negotiate random
dummy extensions and, using out of band knowledge shared with the server,
require that those extensions be negotiated. More than just negotiated,
these extensions should probably use dummy logic like sending bogus
extension frames and settings. A vendor that owned both an auto-updating
client and popular website could enforce this.
* Make sure to use features that aren't necessarily required, in order to
make sure they remain viable. For example:
  - If we think servers need to at least be able to support reading
continuation frames (if not necessarily use them themselves), then clients
should make sure to exercise this code path some part of the time.

I feel like there were a number of other things that we wanted to do, but I
forget. If anyone knows anything that they want early implementers to do in
order to keep the ecosystem healthy, I'd love to hear.

Cheers.

---

From: "Poul-Henning Kamp" <[email-masked]>
Date: Tue, 01 Jul 2014 06:23:14 +0000

In message <CAA4WUYgqE02o9jftm1ERJGsKBqau9CRAJ4=[email-masked]>, =?UTF-8?B?V2lsbGlhbSBDaGF
uICjpmYjmmbrmmIwp?= writes:

>major implementations did in order to keep the ecosystem healthy.

The best way to "keep the ecosystem healthy" is to write a good and
simple standard without bogus misfeatures like CONTINUATION.

>should make sure to exercise this code path some part of the time.

You have heard a rather large number of intermediaries say clearly that
they will not implement CONTINUATION, trying to force them to using this
sort of "blackmail" ain't gonna make you and your browser any friends.

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
[email-masked]         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.

---

From: William Chan (陈智昌) <[email-masked]>
Date: Mon, 30 Jun 2014 23:30:40 -0700

Try not to be too combative here :) I specifically caveated CONTINUATION
with an "If we think servers need to at least be able to support reading
continuation frames." In this thread, I'm not trying to debate the
controversial stuff. I'm just trying to get a list of the stuff we have a
relatively strong consensus around and how we keep those usable.

On Mon, Jun 30, 2014 at 11:23 PM, Poul-Henning Kamp <[email-masked]>
wrote:

> In message <CAA4WUYgqE02o9jftm1ERJGsKBqau9CRAJ4=
> [email-masked]>, =?UTF-8?B?V2lsbGlhbSBDaGF

---

From: "Poul-Henning Kamp" <[email-masked]>
Date: Tue, 01 Jul 2014 06:36:47 +0000

In message <CAA4WUYj1Qb_cNWQ1LA=[email-masked]>, =?UTF-8?B?V2lsbGlhbSBDaGF

>relatively strong consensus around and how we keep those usable.

I think the second-smartest thing you can do to CONTINUATION is to make
it a negotiated feature/extension, rather than assume that it might work.

The smartest is of course to not have something that bogus in the standard
to begin with.

---

From: Mark Nottingham <[email-masked]>
Date: Tue, 1 Jul 2014 16:55:23 +1000

PHK - 

I appreciate you're concerned about the CONTINUATION issue, but using it to derail other discussions isn't appropriate. 

Also, emotive language like "bogus misfeatures" and "blackmail" doesn't help make decisions; it's just a distraction. Please refrain.

Thanks,

--
Mark Nottingham   https://www.mnot.net/