- From: Dan Connolly <connolly@w3.org>
- Date: Thu, 08 Jan 1998 03:07:03 -0600
- To: "Sam X. Sun" <ssun@CNRI.Reston.VA.US>
- CC: uri@bunyip.com, urn-ietf@bunyip.com
Sam X. Sun wrote: > > > Sam Sun wrote: > > > In the case of URL, The " [ "#" fragment ] " is only used or useful by > some > > > URL schemes. So my question is: is it acceptable to say that the > fragment > > > is scheme dependent, and don't bring it up in the URI definition? > > Dan Said: > > > > No; that is, to say that is not consistent with current > > implementations, and I would find it unacceptable. > > The current implementation (eg. Netscape browser) append the "#fragment" to > whatever > the base URI is. I don't quite understand on where it would be > inconsistent? Uh... you said it yourself: "whatever the base URI is" regardless of scheme. Anyway... you report some interesting test results... > Here is an example which I think doesn't honor the current '#' URI syntax: > > If I define my password as "password_with_#_character", and use "ftp" URL: > > ftp://my_user_id:password_with_#_character@myhost/my_file_path > > Netscape browser implementation will pass the entire password (with # > character in it) to the server, instead of sending only > "ftp://user_id:password_with_" to the server. Hmm... That's certainly different from what Roy's spec[1] describes. [1] http://www.ics.uci.edu/~fielding/url/draft-fielding-uri-syntax-00.txt According to the regexp in the spec, it parses as: connolly@beach ../connolly[1005] perl uri.pl ftp://my_user_id:password_with_#_character@myhost/my_file_path [ftp:] [ftp] [//my_user_id:password_with_] [my_user_id:password_with_] [] [] [] [#_character@myhost/my_file_path] [_character@myhost/my_file_path] where uri.pl= while(<>){ m,^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?,; print "[$1] [$2] [$3] [$4] [$5] [$6] [$7] [$8] [$9]\n"; } It's also different from the original implementation: ------- http://www.w3.org/Library/src/HTParse.c /* Look for fragment identifier */ if ((p = strchr(name, '#')) != NULL) { *p++ = '\0'; parts->fragment = p; } ------- > In fact, using %25 to replace > the '#' character will fail. That seems like a bug to me. But I suppose Draft Standard is the time to describe what happens rather than prescribe something else. Hmm... the ftp URL spec[2] doesn't say that passwords get %xx encoded. Seems to me it should; else there's no way to express '/' in a password. I suppose that's not a fatal limitation... [2] http://ds.internic.net/internet-drafts/draft-casey-url-ftp-00.txt > Dan Said: > > For example, consider: > > > > <p>...<a href="#foo">tail</a> > > > > ... > > > > <p><a name="foo">head</a> > > > > I can tell you where the link from tail goes (i.e. to head) > > without knowing what URI scheme was used to access the document. So > > can lots of implemented web clients (and maybe even some servers). > > > > The example will fail from the current Netscape implementation if no BASE > URI is defined. Wow... we worked really hard on this part of the HTML 2.0 spec: ======== Network Working Group T. Berners-Lee Request for Comments: 1866 MIT/W3C Category: Standards Track D. Connolly http://www.w3.org/MarkUp/html-spec/html-spec_7.html#SEC7.4 Fragment Identifiers Any characters following a `#' character in a hypertext address constitute a fragment identifier. In particular, an address ^^^^^^^^^^^^^^^^^^^^^^^^^ of the form `#fragment' refers to an anchor in the same document. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ======== But I guess rules were made to be broken. :-{ > (Refer the following URL for an example: > http://ssun.cnri.reston.va.us/ietf/uri/nobase.htm and > http://ssun.cnri.reston.va.us/ietf/uri/fragment.htm). nobase.htm is illegal, per ========= http://www.w3.org/MarkUp/html-spec/html-spec_5.html#SEC5.2.2 The optional BASE element provides a base address for interpreting relative URLs when the document is read out of context (see section Hyperlinks). The value of the HREF attribute must be an absolute URI. ========= so the behaviour of HTML user agents is unspecified. > Regards, Interesting stuff. -- Dan http://www.w3.org/People/Connolly/
Received on Thursday, 8 January 1998 08:10:16 UTC