Re: [art] Revising BCP56: On the use of HTTP as a Substrate

Mark Nottingham <mnot@mnot.net> Tue, 18 July 2017 10:48 UTC

Return-Path: <mnot@mnot.net>
X-Original-To: art@ietfa.amsl.com
Delivered-To: art@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 07444129AC4 for <art@ietfa.amsl.com>; Tue, 18 Jul 2017 03:48:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.721
X-Spam-Level:
X-Spam-Status: No, score=-2.721 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=mnot.net header.b=hI8VXlmT; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=EsQLDzQx
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VLdICuLexUOJ for <art@ietfa.amsl.com>; Tue, 18 Jul 2017 03:48:16 -0700 (PDT)
Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1376012714F for <art@ietf.org>; Tue, 18 Jul 2017 03:48:16 -0700 (PDT)
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 8312320A5D; Tue, 18 Jul 2017 06:48:15 -0400 (EDT)
Received: from frontend1 ([10.202.2.160]) by compute3.internal (MEProxy); Tue, 18 Jul 2017 06:48:15 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mnot.net; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=fm1; bh=deuPIkNSRlFhdX+pTv TDU67tJAFIwSkm/Mo65dYjuqk=; b=hI8VXlmT0DOMlH2xldYD2+s1ipYEz0fpT9 06hdtR6nT3zYNhslWGaMrHhsOhRwvcPRvslX1mjbYm8ywolFpYm0jY9oC0RyHrL7 HJyXFMD+hkC8KzWRjrDeI4Y2g+Vu6uPoKVJ98FoUNW8l1WKgYKoUL5LPSfGKBBR4 yQY9B+EHNKKuf7VjpAjsozaV7iHsDqiv5mDL16WHqW28+9dr3jIU91/+Cek6fubA Ngi54Fr0Ly/MYGIM+dluebxJcQY3k4ODpd+hjWP2A49cXzzxDvGTGUTDDYEvWc44 f3ZHxd7iQIq6c9yiFW4SdnZYszKbrnuAb6Sla4Y6bi/E1BLFJUwQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc:x-sasl-enc; s= fm1; bh=deuPIkNSRlFhdX+pTvTDU67tJAFIwSkm/Mo65dYjuqk=; b=EsQLDzQx OdAKS0k8UKUGoqq49UD0BmZUweOE6F9Q0kH38GwMvmDoSAhL8cJB5c5q5GjqOsH1 VmV44aMmAoUKabSXAd3ljsgxHhU19BES62Nq0gvqPFk/M0CF0rPnQChOZMqz/uzy g2jqYy6nUTykOZatdwaZTiUtZm1wZWUzwAVU/wguKDZwHvjL/HffMlvnhI56eZeN ArTuRntfWGYtNOyA5SR92WLE3iR0uXzCanag2LiZ3o0WeZqpIeH92j38eY5AUPmO 2E/+waHUeOuBQqOstl0yu0zCIx4Gfg2kbyejc7+iRXcJTgBduKeQugGd6MYOUh7i c6gDjdK8iEBYiQ==
X-ME-Sender: <xms:b-dtWaY5ttQmkHORd_DvcjTTaFtp418qpSRPwnxYlSBcfaxgpcBH7Q>
X-Sasl-enc: Qzh/aDghYxX12FHdYwZ+UM1cL70l2bUolKmjKLBJj4GZ 1500374895
Received: from dhcp-813f.meeting.ietf.org (dhcp-813f.meeting.ietf.org [31.133.129.63]) by mail.messagingengine.com (Postfix) with ESMTPA id 883427E312; Tue, 18 Jul 2017 06:48:14 -0400 (EDT)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
From: Mark Nottingham <mnot@mnot.net>
In-Reply-To: <MWHPR21MB0125A6F31A0F572A381C174AA3A30@MWHPR21MB0125.namprd21.prod.outlook.com>
Date: Tue, 18 Jul 2017 12:48:12 +0200
Cc: Alexey Melnikov <alexey.melnikov@isode.com>, "art@ietf.org" <art@ietf.org>, Adam Roach <adam@nostrum.com>, Patrick McManus <mcmanus@ducksong.com>
Content-Transfer-Encoding: quoted-printable
Message-Id: <8557ED98-EC4F-4D16-9793-C87915B2AFAA@mnot.net>
References: <83273F06-63D3-41C1-BC3C-9ECE401C2279@mnot.net> <ebabe106-d914-f21b-30c2-f91f583f4de5@nostrum.com> <DE1772EA-E54A-4FC5-AF5B-6958477B0F44@mnot.net> <MWHPR21MB0125968A70D48B275C8EC08CA3A30@MWHPR21MB0125.namprd21.prod.outlook.com> <57B020F0-3FB8-423D-BDB6-4AF98BE9C4BA@mnot.net> <MWHPR21MB0125A6F31A0F572A381C174AA3A30@MWHPR21MB0125.namprd21.prod.outlook.com>
To: Dave Thaler <dthaler@microsoft.com>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/art/PJj9vPwe5EkDac1mveAIfw26DHs>
Subject: Re: [art] Revising BCP56: On the use of HTTP as a Substrate
X-BeenThere: art@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Applications and Real-Time Area Discussion <art.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/art>, <mailto:art-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/art/>
List-Post: <mailto:art@ietf.org>
List-Help: <mailto:art-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/art>, <mailto:art-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 18 Jul 2017 10:48:19 -0000

After this and some offline discussion, my current copy has:

~~~

### URL Schemes {#scheme}

Applications that use HTTP will typically use the "http" and/or "https" URL schemes. "https" is preferred to mitigate pervasive monitoring attacks {{?RFC7258}}.

However, application-specific schemes can be defined as well.

When defining an URL scheme for an application using HTTP, there are a number of tradeoffs and caveats to keep in mind:

* Unmodified Web browsers will not support the new scheme. While it is possible to register new URL schemes with Web browsers (e.g. registerProtocolHandler() in {{custom-handlers}}, as well as several proprietary approaches), support for these mechanisms is not shared by all browsers, and their capabilities can vary.

* Likewise, existing non-browser clients, intermediaries, servers and associated software will not recognise the new scheme, and might fail to operate. For example, a client library might fail to dispatch the request; a cache might refuse to store the response, and a proxy might fail to forward the request. 

* Because URLs occur in and are generated in HTTP artefacts commonly, often without human intervention (e.g., in the `Location` header), it can be difficult to assure that the new scheme is used consistently.

* The resources identified by the new scheme will still be available with "http" and/or "https" URLs to clients. While it is possible to define the relationship between these resources in new new scheme's specification, existing HTTP software (such as clients, caches, intermediaries and servers) will not be available, so there is a danger of confusion when the "wrong" URL is used.

* Features that rely upon the URL's origin {{?RFC6454}}, such as the Web's same-origin policy, will be impacted by a change of scheme.

* HTTP-specific features such as cookies {{?RFC6265}}, authentication {{?RFC7235}}, caching {{?RFC7234}}, and CORS {{CORS}} might or might not work correctly, depending on how they are defined and implemented. Generally, they are designed and implemented with an assumption that the URL will always be "http" or "https".

* Web features that require a secure context {{secure-context}} will likely treat a new scheme as insecure.

For these reasons, it is preferable to use the message payload to indicate the application in use, rather than the URL scheme.

See {{?RFC7595}} for more information about minting new URL schemes.


~~~

Thoughts?


> On 16 Jul 2017, at 10:18 am, Dave Thaler <dthaler@microsoft.com> wrote:
> 
> So if you have a resource that is served over multiple other protocols (ftp, coap, whatever) but NOT http,
> W3C would tell people to use the HTTP scheme anyway?  
> 
> http://www.w3.org/2001/tag/doc/SchemeProtocols.html#useNaturalProtocol says:
> 4.2.1 G4. Serve using the protocol associated with the URI scheme
> 
> -----Original Message-----
> From: Mark Nottingham [mailto:mnot@mnot.net] 
> Sent: Sunday, July 16, 2017 10:16 AM
> To: Dave Thaler <dthaler@microsoft.com>
> Cc: Adam Roach <adam@nostrum.com>; Alexey Melnikov <alexey.melnikov@isode.com>; Patrick McManus <mcmanus@ducksong.com>; art@ietf.org
> Subject: Re: [art] Revising BCP56: On the use of HTTP as a Substrate
> 
> 
>> On 16 Jul 2017, at 10:11 am, Dave Thaler <dthaler@microsoft.com> wrote:
>> 
>> I think 4.3.2 is problematic as currently worded.  For example,
>>> Using other schemes to denote an application using HTTP makes it more 
>>> difficult to use with existing implementations (e.g., Web browsers),  
>>> and is likely to fail to meet the requirements of [RFC7595].
>> 
>> The "URI Schemes and Web Protocols" document Henry pointed to argues 
>> for separate URI schemes for different protocols (ftp, http, coap, etc.), e.g. "G4. Serve using the protocol associated with the URI scheme".
>> 
>> I think the "HTTP as a Substrate" document is worded as if the only protocol an app supports is HTTP,
>> which is not the case.   If an application defines higher layer semantics where HTTP and something else
>> can both be used as transports (the topic of 
>> draft-thaler-appsawg-multi-transport-uris discussion), than 4.3.2 
>> would imply that one must use multiple URIs for the same transport, rather than having one higher-layer URI for the application-layer protocol or semantics.
>> 
>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.w3
>> .org%2FTR%2Fwebarch%2F%23uri-aliases&data=02%7C01%7Cdthaler%40microsoft.com%7Cf5e1aabcbc1b4a7a6fb708d4cc22eea2%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636357897782919498&sdata=klbb40TomYZ216cxDZFHGBh1EiXMaVc2pmT4%2FjsXKv4%3D&reserved=0 discusses multiple URIs for the same resource and has recommendations like "A URI owner SHOULD NOT associate arbitrarily different URIs with the same resource."
>> 
>> Thus that would argue that apps should have higher-layer URIs for 
>> concepts that are not specific to HTTP, since there may be different 
>> URIs that differ by existing protocol (and URI scheme).  As such, 
>> 4.3.2 seems problematic since it seems to be saying that that's bad and apps should use different URIs with the same resource.
> 
> W3C doesn't share the IETF's aversion to using HTTP to identify higher-level concepts. The "Web" way that has emerged is to use HTTP to discover more about the other protocols as necessary (as we see with H2 and now QUIC negotiation).
> 
> 
> 
> --
> Mark Nottingham   https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.mnot.net%2F&data=02%7C01%7Cdthaler%40microsoft.com%7Cf5e1aabcbc1b4a7a6fb708d4cc22eea2%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636357897782929506&sdata=hLIqYngKJ4NFkbB3zJl6Pf6jeL0dgW%2FkQiFIiWxFtT8%3D&reserved=0
> 
> 
> _______________________________________________
> art mailing list
> art@ietf.org
> https://www.ietf.org/mailman/listinfo/art

--
Mark Nottingham   https://www.mnot.net/