Re: 6455 Websockets and the relationship to HTTP

Jacob Champion <> Fri, 02 December 2016 18:40 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 013FA12968D for <>; Fri, 2 Dec 2016 10:40:43 -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 0JOpVM2P4Os4 for <>; Fri, 2 Dec 2016 10:40:40 -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 D154112967C for <>; Fri, 2 Dec 2016 10:40:40 -0800 (PST)
Received: from lists by with local (Exim 4.80) (envelope-from <>) id 1cCsib-0003PJ-KN for; Fri, 02 Dec 2016 18:37:57 +0000
Resent-Date: Fri, 02 Dec 2016 18:37:57 +0000
Resent-Message-Id: <>
Received: from ([]) by with esmtps (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <>) id 1cCsiT-0003Nv-Kx for; Fri, 02 Dec 2016 18:37:49 +0000
Received: from ([]) by with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <>) id 1cCsiN-00054n-4U for; Fri, 02 Dec 2016 18:37:44 +0000
Received: by with SMTP id 3so110118080pgd.0 for <>; Fri, 02 Dec 2016 10:37:04 -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=yVxKWP/ZFlO86yCBs70eKVEzygRCF0hmQLy9gr2oHy8=; b=tQQUJZbgattqkwGjf+Bbo/K6oTenTc2y9u1nj9Lz5HIJ1GvFW0hcJQQe8z4Pqg1FNn j7gbujG8kevByS8hxayU4UsM2cxJbCRgkd+Scu85hVVChL4QVKfS3qdUuMrWeXMBYpOs 9UJ42nhegHj7V+ukCeDap5e7yPfzKPFPsSMxouJvqVPfCb2g4obNuhISuC8KnMXJsJov lZFPT42RpVmTvdvmRWS2y1Romo/iE5WZLKxu9WW9whi9aIHhYX/fafXRo3fnZo4OQNNm dmSMSoPz+cQDoMOHzDwhSjy+iGBbFc6EKmNnRSbYgsgMhwGwg7xREswc6jaPXfZjfAvK RZZg==
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=yVxKWP/ZFlO86yCBs70eKVEzygRCF0hmQLy9gr2oHy8=; b=ccZBjqC8VnFMLDsm4Rk4U9uiOZnE8F4V/BiZyoEGzvYoJ/jJssgFgwz1xxpo4AkJ+B ngUxA357tdRHU43tiCJ8YDgoDI65nd1kTtlstoGrH19oJYqOqiaJFQmrMxxaxW2/wGqs I3GvKV6bB+Z5SgTQMNeU2wB1kwKL7Brp90oDZbffr6DYC/8siLYYipVWFL7Ff54KGa4U 1KdF7ozrR4eTS6aaUNYOpoBHJxNhxkitBAWARzq+wo5YUXqgzNO/JsURK+OV7aAn0apn jEPOsYD4LHPPnmahFtjL1xw2j1tIBE8bbpw27mWWLGsOAhEkPRSq87tqtscIaJojvvjM yGsg==
X-Gm-Message-State: AKaTC02Kw5Gyr0wq8biwWvHfD1C4snv31vlEAnKOov0D5uDw2XzIZAj3hvbaMZa2i7jAEw==
X-Received: by with SMTP id t10mr80852538pgh.95.1480703817900; Fri, 02 Dec 2016 10:36:57 -0800 (PST)
Received: from [] ( []) by with ESMTPSA id e11sm9484749pgp.10.2016. (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Dec 2016 10:36:57 -0800 (PST)
To: Patrick McManus <>
References: <> <> <> <> <> <> <> <> <> <> <>
Cc: HTTP Working Group <>
From: Jacob Champion <>
Message-ID: <>
Date: Fri, 02 Dec 2016 10:36:56 -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_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: 1cCsiN-00054n-4U 546785a0a7804065208135a853c0ec3f
Subject: Re: 6455 Websockets and the relationship to HTTP
Archived-At: <>
X-Mailing-List: <> archive/latest/33094
Precedence: list
List-Id: <>
List-Help: <>
List-Post: <>
List-Unsubscribe: <>

On 12/02/2016 10:02 AM, Patrick McManus wrote:
> On Fri, Dec 2, 2016 at 12:52 PM, Jacob Champion <
> <>> wrote:
>     so that existing clients of WS subprotocol
> you had me at subprotocol.
> which one(s)? Pointers to definitions? It would be interesting to see
> how well that mechanism took off - mostly I've seen it used for versioning.

If you mean the registered list:

It's grown a bit since last I looked. Twenty-five or so?

> but secondarily, sub-protocol negotiation is part of the js api so I
> probably need a little clarification about what you have in mind as the
> gap you objected to wrt subprotocol. Thanks.

Right, the negotiation itself wasn't so much what my fear was about. 
I'll need to dig the specs out again, but the two (admittedly minor) 
gaps that I remember right now are application-data pings and 
frame-by-frame message streaming. There might be others.

(Since frame boundaries don't have *semantic* meaning in WS, the major 
thing to keep for WS/2 is the ability to send control frames in the 
middle of a very large message, which IIUC the WS API does not currently 
allow. As for pings, the data reflected by the server could allow 
clients to perform rudimentary latency monitoring or something else 
clever at the application level, perhaps for clock synchronization...?)

For the record, I'm not currently aware of a *specific* subprotocol that 
would break using only the WS API subset. That would be better answered 
by the HyBi experts, I think.