Issue #7310 has been updated by duerst (Martin Dürst).


knu (Akinori MUSHA) wrote:
> naruse (Yui NARUSE) wrote:
> > knu (Akinori MUSHA) wrote:
> > > Please read the RFCs, especially RFC 1738 and see how the path
> > > part in FTP URI is defined.
> > 
> > RFC 1738 is obsoleted by RFC 2396 and no RFCs define FTP URI scheme now.
> 
> As far as I know, (part of) RFC 1738 was just "updated" by RFC
> 2396.  It seems that it was actually obsoleted by RFC 4248 and
> 4266, neither of which however is about FTP.

"obsolete" is strange here. ftp: and file: are still only defined in RFC 1738 (but see below).

> So, my understanding is that developers who deal with FTP scheme
> URIs would still look into and use RFC 1738 as one of references.

Most probably not! What's much more important is that the "U" in URI stands for "uniform". URI schemes have a lot of common syntax. http: and ftp: are a good example. For the common syntax, RFC 1738 is almost useless. This is very much improved in RFC 2396 and later RFC 3986. So using RFC 1738 for URI syntax is not really appropriate.

Also, please have a look at http://tantek.com/2011/238/b1/many-ways-slice-url-name-pieces. There are many differences between the various libraries, but one of the positive conclusions was the following:
"path has been used consistently for the past 10+ years and in a way consistent with its operating system roots." There's a good reason for this: Having a slash at the start means that the path is absolute. No slash means relative.

Now imagine Ruby being listed at http://tantek.com/2011/238/b1/many-ways-slice-url-name-pieces, and needing two rows, because http: and ftp: are treated differently. It would look really, really bad. So please fix this as early as possible!

> > A latest FTP URI scheme draft defines ftp-path, but there is no path
> > http://tools.ietf.org/html/draft-yevstifeyev-ftp-uri-scheme-08
> 
> Thanks for the pointer.  It could be used as a source when it is
> officially published.

Please don't wait for this. RFC 2396 (and RFC 3986) updated the general syntax already. Mykyta Yevstifeyev isn't currently active in the IETF, and nobody else is currently working on this document, but including the first "/" in the path is not something that has ever been questioned.

So the only problem with changing this may be backwards compatibility, but I think this can be covered by a warning.

----------------------------------------
Bug #7310: URI::FTP API inconsistency
https://bugs.ruby-lang.org/issues/7310#change-32735

Author: t3hk0d3 (Igor Yamolov)
Status: Rejected
Priority: Low
Assignee: 
Category: lib
Target version: next minor
ruby -v: 1.9.3p194


1.9.3p194 :012 > test = URI.parse("http://test/")
 => #<URI::HTTP:0x0000000142c100 URL:http://test/> 
1.9.3p194 :013 > test.path
 => "/" 
1.9.3p194 :014 > test = URI.parse("ftp://test/")
 => #<URI::FTP:0x00000001441488 URL:ftp://test/> 
1.9.3p194 :015 > test.path
 => "" 



-- 
http://bugs.ruby-lang.org/