Re: [apps-discuss] character repertoire for fragment identifiers

Sam Ruby <rubys@intertwingly.net> Mon, 12 January 2015 17:56 UTC

Return-Path: <rubys@intertwingly.net>
X-Original-To: apps-discuss@ietfa.amsl.com
Delivered-To: apps-discuss@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C8E571ACD1C for <apps-discuss@ietfa.amsl.com>; Mon, 12 Jan 2015 09:56:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham
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 jpI-FDvNTKru for <apps-discuss@ietfa.amsl.com>; Mon, 12 Jan 2015 09:55:58 -0800 (PST)
Received: from cdptpa-oedge-vip.email.rr.com (cdptpa-outbound-snat.email.rr.com [107.14.166.225]) by ietfa.amsl.com (Postfix) with ESMTP id 8A2311ACD1B for <apps-discuss@ietf.org>; Mon, 12 Jan 2015 09:55:58 -0800 (PST)
Received: from [98.27.51.253] ([98.27.51.253:6379] helo=rubix) by cdptpa-oedge02 (envelope-from <rubys@intertwingly.net>) (ecelerity 3.5.0.35861 r(Momo-dev:tip)) with ESMTP id BD/B8-23646-DAA04B45; Mon, 12 Jan 2015 17:55:57 +0000
Received: from [192.168.1.102] (unknown [192.168.1.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: rubys) by rubix (Postfix) with ESMTPSA id 2BF7C140B59 for <apps-discuss@ietf.org>; Mon, 12 Jan 2015 12:55:58 -0500 (EST)
Message-ID: <54B40AAD.9040400@intertwingly.net>
Date: Mon, 12 Jan 2015 12:55:57 -0500
From: Sam Ruby <rubys@intertwingly.net>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: apps-discuss@ietf.org
References: <20140926010029.26660.82167.idtracker@ietfa.amsl.com> <54A557E1.6050502@intertwingly.net> <CACweHNCQZg1U1u8U=-f6h0+BPnp6Wr_T=r_wGiPAbhTbuMCGWQ@mail.gmail.com> <54A94109.5010901@intertwingly.net> <00cf01d02cc7$d5dba4c0$4001a8c0@gateway.2wire.net> <54B16C2B.9050604@seantek.com> <54B17BBE.4000900@intertwingly.net> <54B18B61.8010308@seantek.com> <54B19435.8070401@intertwingly.net> <54B1B211.3050807@seantek.com> <54B1B682.3070609@intertwingly.net> <54B28E0F.8070306@gmx.de> <54B2936B.7030805@intertwingly.net> <05AD7DE2-1C54-45CD-B33A-13766D771E57@mnot.net> <54B2A2CD.5080502@gmx.de> <1A5BBD25-FEBD-49B1-9EFB-4EF8877BF0E7@mnot.net> <54B2A4F9.2070909@gmx.de> <54B2A894.4020201@intertwingly.net> <54B2ABA8.6030205@gmx.de> <54B2C6FA.80802@intertwingly.net> <54B2EE08.9040705@gmx.de> <54B2F527.7040404@intertwingly.net> <54B2FB76.6040208@gmx.de>, <54B3316B.7040909@intertwingly.net> <54b3f3fd.42208c0a.893a.1fcb@mx.google.com>
In-Reply-To: <54b3f3fd.42208c0a.893a.1fcb@mx.google.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 8bit
X-RR-Connecting-IP: 107.14.168.130:25
X-Cloudmark-Score: 0
Archived-At: <http://mailarchive.ietf.org/arch/msg/apps-discuss/0BaQQwwzyMVt9Nej_PTALuL1e5Q>
Subject: Re: [apps-discuss] character repertoire for fragment identifiers
X-BeenThere: apps-discuss@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: General discussion of application-layer protocols <apps-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/apps-discuss/>
List-Post: <mailto:apps-discuss@ietf.org>
List-Help: <mailto:apps-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 12 Jan 2015 17:56:01 -0000

On 01/12/2015 11:03 AM, darrel.miller@gmail.com wrote:
> *> From:* Sam Ruby <mailto:rubys@intertwingly.net>
> *> *
> *> *Again, it is my hope/expectation that by year end every single one of
> *> *the parsers that I have looked out (with the possible/probable
> exception
> *> *of Perl) will NOT percent encode fragments.
> *> *…
> *> *
> *> *I have published a lot of test values that I am looking for people to
> *> *work through with me.  Cooperation amongst browser vendors in this
> *> *effort is increasing.  I have yet to find anybody on this list willing
> *> *to look at this data.
>
> I have looked at the test data.  Specifically I have looked at the
> comparisons between the .NET framework (csharp) URI parser and the
> reference implementation.

Thanks for doing this!

> I’m not sure how you ever expect to obtain a consistent result between a
> library that returns errors along with a parsed result and one that
> throws an exception and aborts parsing upon encountering an error.  Is
> it your expectation that the .Net framework stops throwing exceptions
> when URI parsing?

At the moment, I'm gathering data and sharing results.

> Also, regarding escaping of fragment identifiers, in your csharp test
> program you use Uri.Fragment, which is explicitly documented to return
> an escaped fragment.  If the developer does not wish the fragment to be
> escaped then they are free to use,
>
> Uri.GetComponents(UriComponents.Fragment, UriFormat.Unescaped)

Fixed.  Thanks!

https://github.com/webspecs/url/commit/1ac9fb4279f90f6c349ee8954159ea48e99cbdef

https://url.spec.whatwg.org/interop/test-results/730127041a

> Different languages do things in different ways.  Trying get every URL
> parsing library to behave identically just feels like an ocean boiling
> exercise.

In the case of browsers and HTML, different browsers doing different 
things was a major pain point, and large strides have been made over the 
past several years on addressing this.

I hope to make things better (more compatible, more interoperable) for 
developers.  If the best I can do is document what options need to be 
used to get compatible results, then that's what I will do.

> Darrel

- Sam Ruby