RE: Testing for equivalenz

There are many different meanings for "equivalent"; you must define
the purpose for which you want to know equivalence before your question
can be answered accurately. Here are some clear distinctions, however:


http://hostwhatever

and

http://hostwhatever#

are different in that the former is an 'absolute URI' and the latter
is a 'URI reference'. There are circumstances (e.g., within the HTTP
protocol talking to a proxy) where the former is allowed and the latter
is not.

http://hostwhatever

and

http://hostwhatever?

are always different. The "?" at the end is part of the path and not
equivalent.

http://host:80 and http://host and http://host/ and http://host:80/
and the case variations of the host name are equivalent because
they are defined to be so by the 'generic syntax':

RFC 2396 section 6:

    In general, the rules for
    equivalence and definition of a normal form, if any, are scheme
    dependent. When a scheme uses elements of the common syntax, it will
    also use the common syntax equivalence rules, namely that the scheme
    and hostname are case insensitive and a URL with an explicit ":port",
    where the port is the default for the scheme, is equivalent to one
    where the port is elided.

and RFC 2616 section 3.2.3:

       - A port that is empty or not given is equivalent to the default
         port for that URI-reference;

         - Comparisons of host names MUST be case-insensitive;

         - Comparisons of scheme names MUST be case-insensitive;

         - An empty abs_path is equivalent to an abs_path of "/".

    Characters other than those in the "reserved" and "unsafe" sets (see
    RFC 2396 [42]) are equivalent to their ""%" HEX HEX" encoding.



 > -----Original Message-----
 > From: uri-request@w3.org [mailto:uri-request@w3.org]On Behalf Of Bjoern
 > Hoehrmann
 > Sent: Saturday, January 06, 2001 9:07 AM
 > To: uri@w3.org
 > Subject: Testing for equivalenz
 >
 >
 > Hi,
 >
 > I'd like to know which of these URIs are valid and equivalent.
 >
 >    http://host:80
 >    http://host:80/
 >    http://host/
 >    http://HOST/
 >    http://hoST/?
 >    http://hoST/#
 >    http://host/?#
 >    http://host#
 >    http://Host?#
 >    http://host:80?#
 >
 > I would say they are all valid and equivalent. If they aren't,
 > why?
 >
 > TIA,
 > --
 > Bj$B‹S(Bn H$B‹I(Brmann ^ mailto:bjoern@hoehrmann.de ^ http://www.bjoernsworld.de
 > am Badedeich 7 $B!<(B Telefon: +49(0)4667/981028 $B!<(B http://bjoern.hoehrmann..de
 > 25899 Dageb$B—M(Bl # PGP Pub. KeyID: 0xA4357E78 # http://www.websitedev..de/
 >

Received on Monday, 8 January 2001 07:49:16 UTC