Re: 6455 Websockets and the relationship to HTTP

Jacob Champion <> Mon, 05 December 2016 18:14 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id E5222129C3C for <>; Mon, 5 Dec 2016 10:14:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -9.897
X-Spam-Status: No, score=-9.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-2.896, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id qv_EKiIFj811 for <>; Mon, 5 Dec 2016 10:14:34 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 7E851129C2D for <>; Mon, 5 Dec 2016 10:14:34 -0800 (PST)
Received: from lists by with local (Exim 4.80) (envelope-from <>) id 1cDxjj-0006Pt-AU for; Mon, 05 Dec 2016 18:11:35 +0000
Resent-Date: Mon, 05 Dec 2016 18:11:35 +0000
Resent-Message-Id: <>
Received: from ([]) by with esmtps (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <>) id 1cDxjT-0006Oj-F1 for; Mon, 05 Dec 2016 18:11:19 +0000
Received: from ([]) by with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <>) id 1cDxjJ-0007vB-Kw for; Mon, 05 Dec 2016 18:11:14 +0000
Received: by with SMTP id 189so64851640pfz.3 for <>; Mon, 05 Dec 2016 10:10:48 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=sBhOIdLxZ0KmewMYWUgVKxu2Er+O4ODVqzuihaDswIQ=; b=GoK2BgRxTbs+wyVrkUytV29yoLGdyt1ruSU3kERwjEbKLaSkD9zxQyY7UsaCy+Vp16 l19Mp0b5gJJ/YlxlOd7Ex1fNnrAmDCWiHsjKyPM6B5e7AHYx+3UNhVbAufmQLeqq1qOX 0j9wJMNg5xGiFhGqCYuzP7O/VT8F04dNagAlK35h83/7E9KYPYrJvcbuj5tZs32I0BU2 nggYhB9M/76EX6TgDFuCAWaE6qfqECeFlFUZsHi0+YPHnDNIXvrf8ex+Ia4FiWyuVA7g 3TYbCk71CNFgbQBiNQBaN5fPgragESAQmdEelHmc9SPcuxGUdmTBVU2H8Rz+oiTC5Vg+ fWNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20130820; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=sBhOIdLxZ0KmewMYWUgVKxu2Er+O4ODVqzuihaDswIQ=; b=Yaf2RsA2Wv4AzCsJooOaalLMxjLvh/yAvOa+IuFNOjAhbDwJOnN6B1ee6h3y4/1ro+ vwMRsTToQHL2ejYKdILvjpwaSSn8yWPZMaZptgiJ0P4IYyKlOJEqjhh2PhuqUiD1hVuA 9XrauqfTsLUkaPE3xtXnwcHwoHcRkMAkDPI62jOYeY5kwGtv2Dt1S4SKpExzTfV9bxwr P/57JpvBW/hdjGxwsPFySDsZxGMlHZ0/J8fq9fWHgojSon/BS4gDSiN1dsdPUb8VPg48 Lzj7eNnNMEQo7CcRee/c0+YR8pCPixu3zoa2Rt44CroedFavTFu8OeHYTcsDY6nGNnKP JDGQ==
X-Gm-Message-State: AKaTC00bGDzj/DPhGmixtVQHyqpdwXGi7ojvnxvFzgJI2mx71CI1tLBJhTYM5s69VqlsfQ==
X-Received: by with SMTP id z71mr58473898pfd.53.1480961437812; Mon, 05 Dec 2016 10:10:37 -0800 (PST)
Received: from [] ( []) by with ESMTPSA id y29sm29019430pfd.63.2016. (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 05 Dec 2016 10:10:37 -0800 (PST)
To: Van Catha <>, Andy Green <>
References: <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <>
Cc: Patrick McManus <>, HTTP Working Group <>
From: Jacob Champion <>
Message-ID: <>
Date: Mon, 05 Dec 2016 10:10:36 -0800
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Received-SPF: pass client-ip=;;
X-W3C-Hub-Spam-Status: No, score=-4.0
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: 1cDxjJ-0007vB-Kw 087a6df5b4be146cf9a74b82e443edd7
Subject: Re: 6455 Websockets and the relationship to HTTP
Archived-At: <>
X-Mailing-List: <> archive/latest/33114
Precedence: list
List-Id: <>
List-Help: <>
List-Post: <>
List-Unsubscribe: <>

On 12/05/2016 07:56 AM, Van Catha wrote:
> BUT what WS1 did not consider is you could have a zombie socket from
> client->server, WS1 did not expose any API to check ping/pong this
> way.

This is not correct. WebSocket, as a protocol, is distinct from the JS 
API. WebSocket, as a protocol, has client->server pings. And there are 
WebSocket client implementations that expose them. Autobahn|Python, for 

> So to repeat making the mistakes of the past we have two options. #1
> Take ping out altogether as its broken, no browser
> client implemented the ability to send pings to server.

The fact that browsers did not see fit to use a part of the protocol 
does not mean that the protocol is "broken", IMHO. The JS API is not 
WebSocket; please don't conflate the two.

Now: perhaps your goal is that WS/2 should be an incompatible upgrade 
that streamlines and removes redundancies between HTTP/2 and WebSocket? 
If so, I think that's a reasonable thing to propose. I just disagree 
with it; I think the protocol is more likely to succeed if existing 
WebSocket implementations can transparently switch between WS/1 and WS/2 
transports as needed.