1

次の URL を解析しようとすると、ポートURI.parseが返されます。nil

require 'uri'

url = "ftp://example.com"
puts URI.parse(url).port
# => 21

url = "sftp://example.com"
puts URI.parse(url).port
# => nil

url = "ftps://example.com"
puts URI.parse(url).port
# => nil

ftpこれが, httpandでは機能するのに and では機能しhttpsない理由を誰かが説明できますsftpftps?

4

2 に答える 2

1

Ruby ではデフォルトでサポートされていません -

p URI.scheme_list

#=> {"FTP"=>URI::FTP,
     "HTTP"=>URI::HTTP,
     "HTTPS"=>URI::HTTPS,
     "LDAP"=>URI::LDAP,
     "LDAPS"=>URI::LDAPS,
     "MAILTO"=>URI::MailTo}

sftpとはftpsどの Ruby クラスでも表されません。したがって、それらのデフォルト ポートは自動的に選択されません。

于 2016-01-21T09:49:36.887 に答える