[hybi] The future of WebSockets, and the WiSH proposal

Takeshi Yoshino <tyoshino@google.com> Tue, 25 April 2017 07:26 UTC

Return-Path: <tyoshino@google.com>
X-Original-To: hybi@ietfa.amsl.com
Delivered-To: hybi@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id 6D4F212896F for <hybi@ietfa.amsl.com>; Tue, 25 Apr 2017 00:26:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id 8vgQxagRPGHp for <hybi@ietfa.amsl.com>; Tue, 25 Apr 2017 00:26:42 -0700 (PDT)
Received: from mail-wm0-x22d.google.com (mail-wm0-x22d.google.com [IPv6:2a00:1450:400c:c09::22d]) (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 33ECF1317E3 for <hybi@ietf.org>; Tue, 25 Apr 2017 00:26:39 -0700 (PDT)
Received: by mail-wm0-x22d.google.com with SMTP id u65so14748291wmu.1 for <hybi@ietf.org>; Tue, 25 Apr 2017 00:26:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=GIseNBGHXEoJP0U5yEOqKq3SsEnIx9ZZlYHbSY+5bcE=; b=Pv+KgjiMZIvIxgtJlgLgXecItxq637awYIsoBegqgphoc0dgwGolCAHbEDSrlROgl4 93OjF0SGe+KAjou7MC6PzeglvspdqdBgwFPM+h3wVkZVXw7szmszaImN2WYIaq3g1Zj0 nJN6qTN9LgWvpX+9pa8YfNOlF93+Qoz9D36MeK7PAFlzFilQZrDnhrpIw7Sc9n4+hKKR T9fbXbHfvJ/yDqD0o60AA/iFRPsuy1/heMQQptH7yq6OKmVWOWibXFCLI0ZUzpbaHU7E 3R28Q6QNdHtqc3NkhboS3lv2N0IFsRh49mW6+ijx7VpKE7iY7XDy2oRdD8n/a/7hHCG7 K6lQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=GIseNBGHXEoJP0U5yEOqKq3SsEnIx9ZZlYHbSY+5bcE=; b=LJJqdkXmcEKepcSrsqTPuadADG2GEUMBbmY8ef7h5nzkq4oJhDzFavmHEDNOmWQVfR LxCMGxzrU4t99ZnbiIDsP//02Zrcg0tBtGakhQ6Dqpy6CMFnptfcUhhnwuoVl+WtsW2B kkciMr0VIj3VV4ed2uDqqtZ7Mfh+Xj7uGuDTvHUnCAKX1ZxW1FI8/byArdTM4FdDyoPO xO/BbjF1zUnxj/Q/14VMiPM2tRiVmja/FZu9N5n9XOglLhpFX97ZuovN3ueYnpOKUKq+ zsNwDL3M2XOl1SwE4fpGAXkG1hl41RrpX9wexBTbu+PNt2cynqbl4V4PJPW3O0FAVIdp Tk0w==
X-Gm-Message-State: AN3rC/6E6NVCPuHmg+0IQT6NJL2jXbny45alwk28isUbW5+cwFKAJVl7 EdLxn08nm+9eOu0PrCSIN25jleFtMbD9+zyTwQ==
X-Received: by with SMTP id k3mr11961271wmf.74.1493105197369; Tue, 25 Apr 2017 00:26:37 -0700 (PDT)
MIME-Version: 1.0
Received: by with HTTP; Tue, 25 Apr 2017 00:26:16 -0700 (PDT)
From: Takeshi Yoshino <tyoshino@google.com>
Date: Tue, 25 Apr 2017 16:26:16 +0900
Message-ID: <CAH9hSJYpnp0FXt9SsrujJM4OHcXe=pryUtHmM6dmcpgG67hdBw@mail.gmail.com>
To: "hybi@ietf.org" <hybi@ietf.org>
Content-Type: multipart/alternative; boundary=001a114a4112e744c3054df8a438
Archived-At: <https://mailarchive.ietf.org/arch/msg/hybi/6-CXa2Ab1qC5fNnc8r6yYNrpKPE>
Subject: [hybi] The future of WebSockets, and the WiSH proposal
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.22
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: Tue, 25 Apr 2017 07:26:45 -0000


I’d like to start discussing here on HyBi ML how we should evolve

We’ve been thinking about this topic, and proposed WiSH [1] briefly at the
HTTP WG (IETF 97 f2f) in Nov 2016. The HTTP-WG chairs suggested that this
topic should be discussed within the WebSocket community. While HyBi WG is
currently closed, this ML is still the best place to have this discussion.


WebSocket (WS) is widely adopted. Popular sites such as GitHub, Slack,
WhatsApp and Twitch are using WS. A majority of HTTP implementations now
support WS, including client/server libraries, web frameworks and

HyBi WG had been trying to evolve WS after finalizing the base WS protocol.
Personally I have been the editor for the compression spec [2].


WiSH [1] is a general purpose message framing format for providing
bi-directional message-based communication for the Web, considering
compatibility with the WebSocket API and intermediaries. WiSH is applicable
for any byte-stream oriented reliable wire protocols.

Given the wide adoption of WS and the rapid evolution of HTTP, e.g. QUIC
[3], we believe that the WiSH proposal creates an ideal evolution path for
WS users, by leveraging the HTTP infrastructure and the widely deployed WS
ecosystems at the same time.

In designing the WiSH spec, we decided to layer WS framing as a MIME type
over the standard HTTP semantics (v.s. any specific wire-transport version
such as HTTP/1.1 or HTTP/2). WiSH will be made transparent to existing
applications, i.e. WiSH doesn’t require extending or modifying existing
APIs on the client or server side. WiSH can also automatically benefit from
infrastructure support for HTTP/*, especially with guaranteed connectivity
(no/less fallback needed). This makes the overall solution much more Web
friendly and future proof

We’d like to hear your feedback on the WiSH proposal and/or any general
thoughts on how to evolve WS.


[1] WiSH I-D https://tools.ietf.org/html/draft-yoshino-wish (GitHub
[2] RFC 7692 Compression Extensions for WebSocket
[3] QUIC Protocol https://www.chromium.org/quic