Issue #13171 has been updated by Matthew Kerwin.


Eric Barendt wrote:
> 
> I disagree that it's correct.

How so? If we can identify the precise issue, it could be useful as a seed for updating the code and/or the specs.

> But it's also inconsistent with HTTP.

That's to be expected; the HTTP URI scheme is defined in up-to-date specifications (work back through the references starting with [RFC 7230](https://tools.ietf.org/html/rfc7230#section-2.7)).

The FTP scheme lives in an ancient, officially "obsolete" specification ([RFC 1738](https://tools.ietf.org/html/rfc1738)), which pre-dates even the generic syntax of RFC 3986. So inconsistencies are to be expected, even if unwanted.

I've just spent four years or so trying to update the FILE scheme from RFC1738 to a more modern context; perhaps someone could do the same for ftp. Or you could forego the IETF and instead work against the WHATWG's [URL spec](https://url.spec.whatwg.org/) which mentions ftp:// URLs, even if it doesn't describe how to actually use them.  (You still need RFC1738 for that, alas.)

----------------------------------------
Bug #13171: URI::FTP path has a trailing slash when just hostname and scheme provided
https://bugs.ruby-lang.org/issues/13171#change-62800

* Author: Milo Price
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: 
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
As with HTTP uris, the trailing slash on a FTP uri should be optional, per RFC 1738 (ftp://ftp.funet.fi/pub/doc/rfc/rfc1738.txt). However, under the current implementation, URI::FTP#to_s always has a trailing slash when only a hostname is provided (i.e., no path):

~~~ ruby
URI.parse("http://example.com").to_s
=> "http://example.com"
URI.parse("ftp://example.com").to_s
=> "ftp://example.com/"
~~~








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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>