[1] [CODE(URI)[frp://foo.example/bar]] という [[URI]] に基づいて [[FTP]] で [SAMP[foo.example]] に接続した時、 [[RFC1738]] に従えば [SAMP(FTP)[CWD bar]] を送る必要がありますが、多くの [[UA]] は [SAMP(FTP)[CWD /bar]] とします。 このため、 [CODE(URI)[frp://foo.example/~bar]] で、利用者 [SAMP[bar]] の [[HOME]] を示しているものを正しく動作させるためには最初の文字が [CODE(URI)[~]] である時だけ特別扱いしないといけません。 なお、 [[Lynx]] は RFC 1738 に触れながらも、現実の実装にあわせて敢えて 「間違った」やり方にしていると言っています。 RFC 1738 の方法に従うと、 FTP で接続した直後の current directory によって URI の指すものが変わってくる虞があります。 (参考 [[w3m-dev]] #3787) [2] >>1 のような事情で、 [SAMP(URI)[ftp://user@foo.example/]] だと root directory になるが、 [SAMP(URI)[ftp://user@foo.example/./]] だと [CODE(file)[~]] になるという裏技(?)があるらしい。 [4] RFC 1738 は RFC 1808 によって、以下の通り訂正されている。 NOTE: Section 5 of RFC 1738 specifies that the question-mark character ("?") is allowed in an ftp or file path segment. However, this is not true in practice and is believed to be an error in the RFC. Similarly, RFC 1738 allows the reserved character semicolon (";") within an http path segment, but does not define its semantics; the correct semantics are as defined by this document for . * 処理モデル ** フォーム提出 *** 仕様書 - [5] [CITE@en-US-x-hixie[Web Applications 1.0]] ([TIME[2011-06-04 00:47:42 +09:00]] 版) * 歴史 ** RFC 1630 [8] [[IETF]] として最初の [[URI]] の仕様書である [[RFC 1630]] には、 [CODE(URI)@en[[[ftp:]]]] [[URL]] の仕様も含まれていました。 [7] [CITE@en[RFC 1630 - Universal Resource Identifiers in WWW: A Unifying Syntax for the Expression of Names and Addresses of Objects on the Network as used in the World-Wide Web]] ([TIME[2011-06-04 17:20:47 +09:00]] 版) ;; 1994年 ** RFC 1738 [10] [[IETF]] [[標準化過程]]としては最初の [[URL]] の仕様書である [[RFC 1738]] にも、 [CODE(URI)@[[[ftp:]]]] [[URL]] の仕様が含まれていました。 [9] [CITE@en[RFC 1738 - Uniform Resource Locators (URL)]] ;; 1994年 ** RFC 1808 [11] [[IETF]] [[標準化過程]]としては最初の[[相対URL]] の仕様書である [[RFC 1808]] には、 [CODE(URI)@en[[[ftp:]]]] [[URL]] に関する[[相対URL]] の扱いについての規定も含まれていました。 [12] [CITE@en[RFC 1808 - Relative Uniform Resource Locators]] ;; 1995年 ** RFC 改訂、されない [16] [[RFC 1738]], [[RFC 1808]] はその後 [[RFC 2368]] (1998年), [[RFC 3986]] (2005年) と二度も改訂され、 [CODE(URI)@en[[[ftp:]]]] を含む個別の [[URL scheme]] の定義は含まれないようになりましたが、 [CODE(URI)@en[[[ftp:]]]] の定義は独立した [[RFC]] にならないまま [[RFC 1738]], [[RFC 1808]] ともに廃止されてしまいました。 [17] 現実には [CODE(URI)@en[[[ftp:]]]] は [[URL scheme]] の中ではよく使われている部類なのですが、 数年以上公式には廃止された状態が続くとか、 [[IETF]] の[[標準化過程]]は無茶苦茶ですね。 [18] 一応 [[I-D]] はありますが、果たして完成するのかどうか。 [19] [CITE@en[draft-hoffman-ftp-uri-04 - The ftp URI Scheme]] ;; 2004年/2005年 [15] [CITE@en[draft-yevstifeyev-ftp-uri-scheme-01 - The \x27ftp\x27 URI Scheme]] ;; 2011年 ** フォーム提出 [6] [[Web Forms 2.0]] ではじめて [CODE(URI)@en[[[ftp:]]]] [[URL]] への[[フォーム提出]]の処理モデルが規定されました。 これはその後 [[Web Applications 1.0]] に取り込まれました。 [3] [CITE@en-GB-x-Hixie[Web Forms 2.0]] ([TIME[2009-01-05 20:07:15 +09:00]] 版) * 例 [13] [PRE(URI example code)[ ftp://ftp.is.co.za/rfc/rfc1808.txt ]PRE] [14] [PRE(URI example code)[ ftp://user@example.com:/pub/ruby;type=i ]PRE] * 関連 [20] [CODE(URI)@en[[[ftp:]]]] と [CODE(URI)@en[[[file:]]]] はしばしば混同されますが、別物です。 [21] [CODE(URI)@en[[[sftp:]]]]、[CODE(URI)@en[[[tftp:]]]] という [[URL scheme]] がありますが、そもそも [[FTP]] と [[SFTP]] や [[TFTP]] は別物です。