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

Takeshi Yoshino <tyoshino@google.com> Wed, 29 July 2015 16:48 UTC

Return-Path: <tyoshino@google.com>
X-Original-To: hybi@ietfa.amsl.com
Delivered-To: hybi@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E04781ACDA6 for <hybi@ietfa.amsl.com>; Wed, 29 Jul 2015 09:48:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.788
X-Spam-Level:
X-Spam-Status: No, score=-0.788 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, J_CHICKENPOX_52=0.6, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0He9ENXr-ySq for <hybi@ietfa.amsl.com>; Wed, 29 Jul 2015 09:48:58 -0700 (PDT)
Received: from mail-ob0-x231.google.com (mail-ob0-x231.google.com [IPv6:2607:f8b0:4003:c01::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E88A51ACD97 for <hybi@ietf.org>; Wed, 29 Jul 2015 09:48:57 -0700 (PDT)
Received: by obre1 with SMTP id e1so11634898obr.1 for <hybi@ietf.org>; Wed, 29 Jul 2015 09:48:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:from:date:message-id:subject:to:cc:content-type; bh=gyQZnRZPor45rZ5VqLau5G1Sgz+e4RpkzSLcNNxJxjg=; b=OoxowdEi9HBOGMDxZtAhmniM/2b0419eGhrdE4AjWPOdExpNkvuDdmBIAbkos7WJQc /UrQXzUPeJjnGJ38aISPsaCsOFN49VfkHI9bxu7RDh/MI1KaREcrihc3Oa1vJ0URg2G+ tQBiPHz5jcNSzuH0YD4pelt/0g1IJ3yBCdC9k+QW5tASQnGTPfSfY5SUn2KrV2K2LBEM 3N+PltWbzPHv01t/EtivoaF9Xa9ETbO/RsPSO2JWiumLVWOq09HlXWjjXcBHbUhWAQLG DL1dpEOZeoaHcl56kCezC4NHCKPyzLxvDdX5Urucq+SyLM/MNc1J6M1thtp31rDpDyNl N9cQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc :content-type; bh=gyQZnRZPor45rZ5VqLau5G1Sgz+e4RpkzSLcNNxJxjg=; b=jytXePXlrgybVaRO9iawhuZ0FnSnJhul/G931JG13NfH+Rve3gJagaIIIzhGNl0pCh +Ytsr/oydj/CfGq1JT/4KbNOd/MQVY75Xjrz+12heD6Qh/g2UQB/06dScxdWHTP+q/Vq arxIt5uuVDMOVluKulxJTUXhBrrcKEfQbq4N/Ep/CO4jyOl6m7ytZbvOkjpukqXUvOab 6OdUeGNZ3ICZqagEeaapgZ12kBahEcNNcjGaZIQRFY6Mo115K0QH7DGccBL0/1iP0PqR 7igC+aJq+JSXa6Of8HuCY4vvWz6RXGb3swQwISSCZT5Q2R7Q1msOry7QnFXBtlgGMcFt wXHQ==
X-Gm-Message-State: ALoCoQlZ4ngkXyLAvxy4y9zByJ37jmotsqX4C21QGlVjAhh1eDCq4p6tp92ezzUkHCJaRMIPiVOA
X-Received: by 10.60.35.98 with SMTP id g2mr40842226oej.6.1438188536477; Wed, 29 Jul 2015 09:48:56 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.202.66.130 with HTTP; Wed, 29 Jul 2015 09:48:36 -0700 (PDT)
From: Takeshi Yoshino <tyoshino@google.com>
Date: Thu, 30 Jul 2015 01:48:36 +0900
Message-ID: <CAH9hSJadi-JNmU=niGh8n1k_sizxdwFNosccTah1assOVc4WAg@mail.gmail.com>
To: Joakim Erdfelt <joakim@intalio.com>
Content-Type: multipart/alternative; boundary="089e01182c10d66e34051c065c33"
Archived-At: <http://mailarchive.ietf.org/arch/msg/hybi/hCrjsQKJlk7MmePOjDom9FBMemU>
Cc: "hybi@ietf.org" <hybi@ietf.org>
Subject: [hybi] Implementing permessage-deflate with Java (was: Re: Restarting IESG review on permessage-deflate)
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/hybi/>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 29 Jul 2015 16:49:00 -0000

Hi Joakim,

On Sat, Oct 5, 2013 at 4:17 AM, Takeshi Yoshino <tyoshino@google.com> wrote:

> On Fri, Oct 4, 2013 at 11:24 PM, Joakim Erdfelt <joakim@intalio.com>
> 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.
>
>