- From: Willy Tarreau <w@1wt.eu>
- Date: Mon, 13 Oct 2014 03:23:26 +0200
- To: Mark Nottingham <mnot@mnot.net>
- Cc: Roberto Peon <grmocg@gmail.com>, HTTP Working Group <ietf-http-wg@w3.org>, Jeff Pinner <jpinner@twitter.com>
Hi Mark, On Mon, Oct 13, 2014 at 11:52:43AM +1100, Mark Nottingham wrote: > Roberto, > > So far, we've had a large number of people -1 any change here. Summarising: > > * It's been asserted that the current approach is "much simpler" to implement > * The difference is "marginal" > * There's concern about "churn" in the spec and implementations > * There's concern that the proposals are untested > > You say it's "highly suboptimal", but you don't back this up. Indeed, we've > long established that the WG is not terribly interested in getting the *most* > efficient compression available -- especially if it's bought with complexity. I think the complexity that was lost with the change was the copy from static to dynamic. In fact, swapping static and dynamic was done only to get smaller indexes on static that can now be compressed in one byte, possibility that was previously offered to dynamic headers only. What we really need to satisfy all users is to be able to encode *most common* static headers with 1 byte, and a number of dynamic headers with 1 byte as well. > As Mike said once long ago, the important part is that we get *some* > compression, and my perception is that there's wide agreement in the WG on > that point. I also agree with this. > In the face of that, a one-byte overhead for dynamic headers is hard to > characterise as "highly suboptimal." I wouldn't be as categoric as Roberto here but I understand his point. The previous design allowed headers not belonging to the static table to be correctly compressed (whatever X-* headers appearing inside companies). The new one makes new headers less efficient than the static ones, and I think Roberto sees less possibilities of future improvements with this design. > Other folks have discussed / proposed more elaborate changes than Jeff, but I > detect very little stomach in the WG for doing so. > > At most, I think we're at a point where the most reasonable thing to do, *if* > we do anything here, would be to revisit the static table and "make room" for > more dynamic entries by pruning it some, as per > <https://github.com/http2/http2-spec/issues/587>. It's more or less similar to what I suggested as well to what I proposed except that we don't need to *prune* some entries if the single-byte encoding covers part of both tables. > However, as discussed before, we'd need to see broad support for such a > change; so far, we've held that #587 will only happen if we're making other > breaking changes. The problem when there are implementations available is that developers know what it means for them to have to modify them : modify both encoders and decoders in multiple products, plan certain outages etc... The problem is that we need to be careful about future users, not early adopters, and all of us have to think about how efficient the protocol will be in 1-10 years, not just right now in implementations that will inevitably evolve in the following months. I personally think that the single-byte encoding of *some* dynamic headers has a real value, and even if people are not pleased with revisiting their code, we should do something for it. Best regards, Willy
Received on Monday, 13 October 2014 01:23:55 UTC