Re: parsing URI (references) according to RFC 3986

On 2011-06-23 18:24, Boris Zbarsky wrote:
> On 6/23/11 12:15 PM, Julian Reschke wrote:
>> Their resolution is IMHO clearly described in RFC 3986; could you be a
>> bit more specific about what your concern is?
>
> My concern is RFC 3986 section 4.4, which says:
>
> When a URI reference refers to a URI that is, aside from its fragment
> component (if any), identical to the base URI (Section 5.1), that
> reference is called a "same-document" reference.
>
> and then says:
>
> When a same-document reference is dereferenced for a retrieval
> action, the target of that reference is defined to be within the same
> entity (representation, document, or message) as the reference
>
> What that means is that it's impossible to implement section 4.4 by
> canonicalizing all URIs into absolute URIs. All URIs used by a system
> have to remember whether they were "same-document" references (which you
> only know at URI creation time) and if so need to know what document
> they're associated with to be properly retrieved.

"Normalization of the base and target URIs prior to their comparison, as 
described in Sections 6.2.2 and 6.2.3, is allowed but rarely performed 
in practice. Normalization may increase the set of same-document 
references, which may be of benefit to some caching applications. As 
such, reference authors should not assume that a slightly different, 
though equivalent, reference URI will (or will not) be interpreted as a 
same-document reference by any given application." -- 
<http://greenbytes.de/tech/webdav/rfc3986.html#rfc.section.4.4.p.3>

So some kind of normalization is clearly allowed, but authors are told 
that they should not rely on it.

Is your concern that not all kinds of normalization are allowed? (for 
instance, 6.2.4 Protocol-Based Normalization is not mentioned which 
might be an oversight).

> This is not interoperably implemented by UAs, last I checked, and you
> were asking about things that cause interop problems.
>
> -Boris
>
> P.S. I also happen to think that the requirements of section 4.4 are
> insane, which is why there is no interop on it.

There isn't? I think we need more examples.

Best regards, Julian

Received on Thursday, 23 June 2011 17:03:07 UTC