Subject: [hybi] Implementing permessage-deflate with Java (was: Re: Restarting IESG review on permessage-deflate)

From: Takeshi Yoshino <[email-masked]>
Date: Thu, 30 Jul 2015 01:48:36 +0900

Hi Joakim,

On Sat, Oct 5, 2013 at 4:17 AM, Takeshi Yoshino <[email-masked]> wrote:

> On Fri, Oct 4, 2013 at 11:24 PM, Joakim Erdfelt <[email-masked]>
> wrote:
>
>> There is also Eclipse Jetty 9.1 (currently in RC releases) support
>> (server and client)
>>
>> We cannot support some of the spec, as written.
>> Our experiences implementing it, and using chromium + pywebsocket for
>> testing both the server or client implementation.
>>
>> The following configuration parameters are not supported, nor can/will be.
>>
>> s2c_no_context_takeover
>> c2s_no_context_takeover
>> s2c_max_window_bits
>> c2s_max_window_bits
>>
>>
> Sorry, why? s2c_no_context_takeover requests the server to reset context.
> The server just need to throw away current deflater, create a new one and
> use it.
>
>
I appreciate if you explain why this doesn't work in detail if you have
time.

Regarding, server_max_window_bits in an offer, I think the choice would be
just rejecting such offers.

Regarding, client_max_window_bits with a value in an offer, you can just
ignore it.

Or, do you think that without supporting these parameters
permessage-deflate won't be useful enough to work on? There're still many
clients that can benefit from permessage-deflate. For example, Chrome never
sends server_max_window_bits in an offer.

> If the client didn't send s2c_no_context_takeover, you can still do the
> same. You don't have to carry over compression context.
>
> The problem is that your server cannot decompress incoming data if the
> client carries over compression context. So, you can just reply with
> c2s_no_context_takeover. In
> http://tools.ietf.org/html/draft-ietf-hybi-permessage-compression-12#section-8.1.1.2,
> a client is required to implement c2s_no_context_takeover. I made this
> mandatory since it's doable. So, you don't have to worry about clients
> coming without c2s_no_context_takeover capability.
>
>
>> This level of control of the deflate algorithm is just not possible in
>> Java, sorry.
>>
>>
> Again, please explain why you can't support no_context_takeover family
> parameter.
>
>