- From: Roy T. Fielding <fielding@apache.org>
- Date: Sat, 20 Sep 2003 15:37:06 -0700
- To: Al Gilman <asgilman@iamdigex.net>
- Cc: Paul Grosso <pgrosso@arbortext.com>, uri@w3.org
On Saturday, September 20, 2003, at 08:53 AM, Al Gilman wrote: > At 07:53 PM 2003-09-19, Roy T. Fielding wrote: >> There is no change in reference semantics between this and 2396. > > Are you sure? Yes. > [I speak as a fool.] No. > Under the old regime, if a hyper-document contains a reference by means > of a fully-qualified URI-reference, that is to say an absolute URI and > a #fragment clause, the referential semantics would appear to have been > changed by the current language. I think referential semantics == it refers to the same resource. It is not "how does the browser respond to a retrieval request on this reference", which is subject to a hundred local configuration items and cache availability criteria that the person making the reference could not possibly know about. A same-document reference has always formed a complete URI with fragment identifier that identifies the target of the reference (e.g., for bookmarking or later use). > In RFC 2396, if the reference contains an absolute URI then the > reference is > never compared with the BASE and the reference is interpreted as to the > resource identified in the URI without regard for the fact that the > current > DOM is a representation of that resource. Caching and retrieval > behavior > is undefined. Whether the User Agent navigates to another node in the > currently > constructed DOM or retrieves the resource afresh from wherever across > the net, > either is regarded as conforming to the referential semantics of the > reference. Yes, though it has long been the case amongst the browsers that the best practice behavior is to not perform a separate retrieval if the reference URI == base URI, because that is more efficient and less likely to lead to trouble if the current page isn't cached or the computer is off-line or otherwise unable to perform a refresh. > In the present draft this behavior is tightened so that all references > are > compared to the incumbent BASE for the current DOM and no refresh is > performed > if the reference can be satisfied from the current DOM. This > constitutes a > tightening of the referential semantics for the case where the > URI-reference > is fully qualified (contains an absolute URI) which happens to agree > with the > BASE. Exactly. It increases the set of references that will be considered same-document links during a retrieval action. > So yes, the behavior is the same as before for #foo references. But > the > specified behavior and therefore the referential semantics has changed > for > the case of absoluteURI#foo references. The referential semantics > does not > only include which resource is referred to. It matters in this case > whether > the reference is to any representation of the resource or locally to > the > representation making the reference. The specified behavior has certainly changed, hopefully to correspond more closely to both browser implementations and the needs of non-hypertext processors. RDF folks requested this change ages ago. > Admittedly, the specification has been changed in this case to agree > with a > widely-implemented narrowing of the formerly-acceptable behavior, but > this > is a change in what the specification asserts by way of referential > semantics. > > The semantic change is to extend #foo semantics to BASE#foo > URI-references. That's odd -- I would call that a behavioral change, since the meaning of the link hasn't changed at all; I only selected one of the ways the link could be satisfied and made it the standard. Before it was left up to the application. ....Roy
Received on Saturday, 20 September 2003 18:37:25 UTC