HTTP2 Expression of Interest

Rob Trace <Rob.Trace@microsoft.com> Thu, 12 July 2012 15:29 UTC

Return-Path: <ietf-http-wg-request@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 655B021F86EC for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 12 Jul 2012 08:29:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.598
X-Spam-Level:
X-Spam-Status: No, score=-10.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id okq8yyxq0l5N for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 12 Jul 2012 08:29:45 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id E06A921F85F0 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Thu, 12 Jul 2012 08:29:44 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1SpLJt-000714-DJ for ietf-http-wg-dist@listhub.w3.org; Thu, 12 Jul 2012 15:28:45 +0000
Resent-Date: Thu, 12 Jul 2012 15:28:45 +0000
Resent-Message-Id: <E1SpLJt-000714-DJ@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <Rob.Trace@microsoft.com>) id 1SpLJj-00070J-04 for ietf-http-wg@listhub.w3.org; Thu, 12 Jul 2012 15:28:35 +0000
Received: from ch1ehsobe005.messaging.microsoft.com ([216.32.181.185] helo=ch1outboundpool.messaging.microsoft.com) by maggie.w3.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from <Rob.Trace@microsoft.com>) id 1SpLJg-0002Pt-9M for ietf-http-wg@w3.org; Thu, 12 Jul 2012 15:28:34 +0000
Received: from mail107-ch1-R.bigfish.com (10.43.68.245) by CH1EHSOBE010.bigfish.com (10.43.70.60) with Microsoft SMTP Server id 14.1.225.23; Thu, 12 Jul 2012 15:28:04 +0000
Received: from mail107-ch1 (localhost [127.0.0.1]) by mail107-ch1-R.bigfish.com (Postfix) with ESMTP id F20DB2A0418 for <ietf-http-wg@w3.org>; Thu, 12 Jul 2012 15:28:03 +0000 (UTC)
X-Forefront-Antispam-Report: CIP:131.107.125.8; KIP:(null); UIP:(null); IPV:NLI; H:TK5EX14MLTC104.redmond.corp.microsoft.com; RD:none; EFVD:NLI
X-SpamScore: -20
X-BigFish: VS-20(zzc85fhzz1202hzz1033IL8275bh8275dhz2fh2a8h668h839hd25hf0ah107ah)
Received-SPF: pass (mail107-ch1: domain of microsoft.com designates 131.107.125.8 as permitted sender) client-ip=131.107.125.8; envelope-from=Rob.Trace@microsoft.com; helo=TK5EX14MLTC104.redmond.corp.microsoft.com ; icrosoft.com ;
Received: from mail107-ch1 (localhost.localdomain [127.0.0.1]) by mail107-ch1 (MessageSwitch) id 1342106881299524_26674; Thu, 12 Jul 2012 15:28:01 +0000 (UTC)
Received: from CH1EHSMHS030.bigfish.com (snatpool2.int.messaging.microsoft.com [10.43.68.231]) by mail107-ch1.bigfish.com (Postfix) with ESMTP id 47A1F1A0043 for <ietf-http-wg@w3.org>; Thu, 12 Jul 2012 15:28:01 +0000 (UTC)
Received: from TK5EX14MLTC104.redmond.corp.microsoft.com (131.107.125.8) by CH1EHSMHS030.bigfish.com (10.43.70.30) with Microsoft SMTP Server (TLS) id 14.1.225.23; Thu, 12 Jul 2012 15:27:59 +0000
Received: from TK5EX14MLTW652.wingroup.windeploy.ntdev.microsoft.com (157.54.71.68) by TK5EX14MLTC104.redmond.corp.microsoft.com (157.54.79.159) with Microsoft SMTP Server (TLS) id 14.2.298.5; Thu, 12 Jul 2012 15:27:34 +0000
Received: from TK5EX14MLTW651.wingroup.windeploy.ntdev.microsoft.com (157.54.71.39) by TK5EX14MLTW652.wingroup.windeploy.ntdev.microsoft.com (157.54.71.68) with Microsoft SMTP Server (TLS) id 14.2.309.3; Thu, 12 Jul 2012 08:27:34 -0700
Received: from TK5EX14MBXW605.wingroup.windeploy.ntdev.microsoft.com ([169.254.5.160]) by TK5EX14MLTW651.wingroup.windeploy.ntdev.microsoft.com ([157.54.71.39]) with mapi id 14.02.0309.003; Thu, 12 Jul 2012 08:27:34 -0700
From: Rob Trace <Rob.Trace@microsoft.com>
To: "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Thread-Topic: HTTP2 Expression of Interest
Thread-Index: Ac1gQlxOk6pdx4eSQSi8/Ice4asRzg==
Date: Thu, 12 Jul 2012 15:27:33 +0000
Message-ID: <FF649A28BA27384396FD4F7BADF45DDF382BD0F0@TK5EX14MBXW605.wingroup.windeploy.ntdev.microsoft.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [157.54.51.90]
Content-Type: multipart/alternative; boundary="_000_FF649A28BA27384396FD4F7BADF45DDF382BD0F0TK5EX14MBXW605w_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
Received-SPF: pass client-ip=216.32.181.185; envelope-from=Rob.Trace@microsoft.com; helo=ch1outboundpool.messaging.microsoft.com
X-W3C-Hub-Spam-Status: No, score=-2.6
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01
X-W3C-Scan-Sig: maggie.w3.org 1SpLJg-0002Pt-9M 509709cba4e8856c26238a11685b23b2
X-Original-To: ietf-http-wg@w3.org
Subject: HTTP2 Expression of Interest
Archived-At: <http://www.w3.org/mid/FF649A28BA27384396FD4F7BADF45DDF382BD0F0@TK5EX14MBXW605.wingroup.windeploy.ntdev.microsoft.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/14109
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

This expression of interest supports our HTTP Speed+Mobility proposal as a starting point for HTTP 2.0.





"briefly describe your implementation or deployment before giving your feedback on all of the proposals"



We have client and server stacks for HTTP 1.1 and associated APIs, with massive deployment in consumer scenarios, corporate and large organizations, cloud, etc. We use HTTP in many different ways and scenarios, including browsers and client apps, web servers and web services, media delivery, cloud applications, VPN, and many others.



"Have you already implemented / deployed this proposal? Do you intend to?"



We have implemented HTTP S+M, and the prototype is up to date with our latest specification release. Please refer to the relevant blog for highlights as well as to obtain the prototype, including source code:



http://blogs.msdn.com/b/interoperability/archive/2012/07/05/check-out-the-updated-http-speed-mobility-open-source-prototype.aspx



"Do you believe it is a good basis for standardization? Why / why not?"



Yes. This proposal addresses the goals that HTTPbis has set for HTTP 2.0 but does so while rooted on a set of principles we believe to be essential for the WG, the IETF and general applicability of HTTP: maintain HTTP semantics, reuse existing standards when possible, be broadly applicable, account for modern clients, etc.



For a summary of those principles please refer to:

http://tools.ietf.org/html/draft-montenegro-httpbis-speed-mobility-02#section-1.1



"If it is adopted as the basis for further work, what concerns need to be addressed?"



Regardless of which of the three proposals is selected as the starting point, HTTP 2.0 has to address different issues which the WG must discuss and ultimately decide on.



This amounts to a PROBLEM STATEMENT for HTTP 2.0. Our current thinking about such a problem statement is below. For each of the topics we summarize our current position, but the main point is that the WG should discuss the issues and arrive at agreed-upon positions for each of these.



Problem Statement for HTTP 2.0.

1.       Negotiation: Setting up an instance of HTTP 2.0.



Our position: We believe in enabling a secure web, but we also believe that to meet the principle of broad applicability, there cannot be a hard dependency on TLS/SSL.  Accordingly, the negotiation must work for both "https" (over TLS) and "http" (no TLS).  We use HTTP Upgrade, which was originally meant for this purpose.



2.       Session Layer: This defines framing and maintenance of the HTTP 2.0 instance.



Our position: Our proposal reuses Websockets binary framing.



3.       Multiplexing Layer: This defines multiplexing HTTP requests over a single TCP connection and maintenance of the multiplexing layer, including flow control.



Our position: We are intrigued by the idea of using multiplexing to enable parallel download of multiple resource, to reduce the TCP overhead on content servers and to reduce the need for domain sharding. We would like to have a data-driven discussion of how much actual efficiency can be gained through multiplexing, whether those gains can be obtained with sites that already use sharding, and whether the gains are worth the cost in complexity.

Flow Control: We believe that flow control is necessary with any MUX solution, but that flow control must be simple and should allow for full bandwidth utilization by default.



4.       HTTP layering: How HTTP messages are layered over the above framing and multiplexing.



Our position: We agree with reducing the overhead of headers in HTTP, either through compression or binary encoding. We think that compression is simple to implement but are open to discussing binary encoding methods suggested by proposals such as draft-tarreau-httpbis-network-friendly-00.

Beyond HTTP 2.0:

-          Server push or Client pull: We are interested in exploring server push or client pull as a separate specification from HTTP 2.0, one that ideally should work for HTTP 1.1 as well.



Thank you,



Rob