Re: WebSocket2

Amos Jeffries <> Sun, 02 October 2016 05:44 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 4C39F12B16D for <>; Sat, 1 Oct 2016 22:44:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -9.917
X-Spam-Status: No, score=-9.917 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.996, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id pluMM104UVlX for <>; Sat, 1 Oct 2016 22:44:48 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 56EA312B16B for <>; Sat, 1 Oct 2016 22:44:48 -0700 (PDT)
Received: from lists by with local (Exim 4.80) (envelope-from <>) id 1bqZW2-0002bg-GP for; Sun, 02 Oct 2016 05:40:46 +0000
Resent-Date: Sun, 02 Oct 2016 05:40:46 +0000
Resent-Message-Id: <>
Received: from ([]) by with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <>) id 1bqZVw-0002au-6B for; Sun, 02 Oct 2016 05:40:40 +0000
Received: from [] ( by with esmtp (Exim 4.80) (envelope-from <>) id 1bqZVu-0005hu-D7 for; Sun, 02 Oct 2016 05:40:39 +0000
Received: from [] (unknown []) by (Postfix) with ESMTP id E7928E6DEB for <>; Sun, 2 Oct 2016 18:40:04 +1300 (NZDT)
References: <> <> <>
From: Amos Jeffries <>
Message-ID: <>
Date: Sun, 2 Oct 2016 18:39:40 +1300
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Received-SPF: pass client-ip=;;
X-W3C-Hub-Spam-Status: No, score=-4.4
X-W3C-Hub-Spam-Report: AWL=-1.271, BAYES_00=-1.9, RDNS_NONE=0.793, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: 1bqZVu-0005hu-D7 209accc31179a4e2e75d5c91e1913c22
Subject: Re: WebSocket2
Archived-At: <>
X-Mailing-List: <> archive/latest/32443
Precedence: list
List-Id: <>
List-Help: <>
List-Post: <>
List-Unsubscribe: <>

On 2/10/2016 7:20 a.m., Van Catha wrote:
> Correct. Because HTTP2/ DATA frames essentially provide flow control only
> and WebSocket2 frames need to be delivered in full to the underlying client
> API. A single WebSocket2 frame could be broken up into multiple HTTP/2 Data
> frames depending how large the MAX negotiated size is by the endpoints.
> The proxy problem circles around back to the implementation. Perhaps a
> header in the request could be included saying to not cache anything, if
> the proxy caches things well its the proxies fault.  Also if the proxy is
> not aware of WebSocket2 this should not matter, the proxies job is to
> forward everything as it came.  As long as the proxy would forward the
> websocket2-[version|compression] headers to the server and forward what the
> server replies with there should be no problems.  Again if the proxy is
> "smart" and decides to cache the response (which did not specify any
> headers related to caching) its the proxies fault.  To be more direct the
> response may be forced to include headers specifically instructing nothing
> should be cached.  Does this work?

If the WebSocket message transmits over HTTP and does not prohibit
caching it can expect to be cached as per the default cacheability of
the method used. Caching is a fundamental part of HTTP that has to be
accounted for and looking at DATA frames alone is not sufficient for that.

We had CONNECT method baked into the WS v1 handshake for exactly this