W3C home > Mailing lists > Public > www-tag@w3.org > July 2002

Re: fragment identifiers

From: Roy T. Fielding <fielding@apache.org>
Date: Thu, 25 Jul 2002 17:08:42 -0700
Cc: www-tag@w3.org
To: Dan Connolly <connolly@w3.org>
Message-Id: <D8143220-A02B-11D6-A1BD-000393753936@apache.org>

>> byte-equivalent, but not age-equivalent.  Thus, if the resource
>> provider has done it right, a fragment identifier can be used to
>> consistently define a "thing" similar to a resource.  We do not,
>> however, call that "thing" a resource
>
> I do.

Do you at least have some way of distinguishing between the two when
talking about architectural elements?  I agree that they are both
identifiers of things that can be useful, but there are many ways
in which the architecture can work with resources that it simply
cannot do so with fragments.  I need a distinction, so one side is
a resource and the other is an indirection.

>> because it simply is not
>> available on the WWW interface as a resource
>
> Yes it is; I can refer to it in the WWW context,
> and it's clear what I'm referring to.

It is available on the interface only as an indirect identifier.
That is a significant limitation -- just ask the people who work
on content management systems.  There is no way to dynamically
correct the reference of old or incorrect fragments because the
server cannot distinguish between requests of the resource with
or without an associated fragment.  It is therefore not a resource
from the perspective of WWW technology and it does no one any good
to confuse the two.

>> -- the WWW does not
>> and never has treated the fragment identifier under the same rules
>> of processing as the resource identifier, since doing so would
>> interfere with the intent and result of client-side indirection.
>
> Along those lines, I don't see a clear distinction
> between http://example/#foo and mailto:foo@example.
> i.e. what we expect clients to do with identifiers
> has to do with more than just whether there's a # in there somewhere.

The #foo doesn't leave the client when performing an interaction
between components within the WWW architecture.  By definition,
information that stays within a component when performing an
interaction is not a data element for that interaction.  Since the
whole architecture is based on the premise of interacting with
resources that are identified by the data element of an interaction
request, it is not reasonable to label both as resources.

What people are capable of doing with identifiers is limited by the
technology that makes use of those identifiers.  There have been
several examples of proxy implementations of mailto that do hide
the distinction between "http://example/foo" and "mailto:foo@example".
Those implementations cannot do the same with "#foo".  When we talk
about the two in terms of architecture, it is appropriate that we
distinguish between resources and things that are only indirectly
accessible via resources, even if they are both resourceful.

....Roy
Received on Thursday, 25 July 2002 20:08:47 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 26 April 2012 12:47:10 GMT