a presentation on tag issue URIEquivalence-15 (and irieverywhere?)
Dan Connolly, Feb 2002* w/optional fragments
...refer to it the same way
e.g.
http://example.net:80/
is specified to refer to the
same thing as http://example.net/
http://EXAMPLE.net/foo
and
http://example.net/foo
.http://example.net/FOO
and
http://example.net/foo
:
Premise: compare u1 and u2, and use the result as information about what they identify, i.e. r1 and r2.
false negative: If r1 = r2 but not R(u1, u2) we say R gives some false negatives.
false positive: If R(u1, u2) but r1 != r2, we say R gives some false positives.
false negatives are a normal consequence of the ordinary situation where local knowledge is incomplete
Axiom: u1 = u2 => r1 = r2.
for absolute URIs (optionally with fragids) u1 and u2, where u1 = u2 is strcmp(b1, b2) where b1 is the US-ASCII encoding of u1 and b2 likewise for u2.
For IRIs, analagously: ecmascript/java/C# string compare[@@double-check] [@@what is this called in the charmod spec?].
Providers: consider using relative references: In http://example/abc , abbreviate http://example/def by a relative URI reference, "def".
"foo"
in http://example/dir1/
refers to
r1"foo"
in http://example/dir2/
refers to
r2 "foo"
= "foo"
but r1 != r2. needed to compare http://example/dir1/foo
with
http://example/dir2/foo
"../foo"
in http://example/dir1/dir3/
refers to r1"foo"
in http://example/dir1/
refers to
r1needed to compare http://example/dir1/foo
with
http://example/dir1/foo
** or at least act like you did.
/FOO/
and /foo/
as
pathnames for distinct resources.Likewise /foo/
and
/foo/index.html
./foo/
and
/foo/index.html
to name the same* resource, and hence
treating them as synonyms is often a useful optimization, servers may use
them to name distinct resources, and the responsibility of the
false positive lies with the optimizing client.*or at least: indistinguishable
/robots.txt
constrains providers choice of names.
This constraint is largely accepted as fair, deployed with due process.
(@@but is it underdocumented? Does it belong in the HTTP spec as notice that it's a reserved pathname?)
/w3c/p3p.xml
?/favico
?aaa?n1=v1&n2=v2...
where aaa is the action URI and n1...
are the form field names.