[1] [DFN[[CODE(URI)@en[[[tn3270:]]]] [[URL]]]] は、 [[TN3270]] や [[TN3270E]]
によりアクセス可能な[[資源]]を表します [SRC[>>2 1.]]。

* 仕様書

- [2] [CITE@en[RFC 6270 - The 'tn3270' URI Scheme]] ([TIME[2011-06-09 19:03:40 +09:00]] 版) <http://tools.ietf.org/html/rfc6270>

* 構文

[7] [CODE(URI)@en[[[tn3270:]]]] の [[ABNF]] 構文は次の通りです。 [SRC[>>2 2.1.]]

[PRE[
     tn3270-uri       = "tn3270:" "//" authority ["/"]
]PRE]

* authority

** userinfo

[11] [[userinfo]] は [[TN3270]] / [[TN3270E]] で接続する際の [[Telnet Authentication option]] ([[RFC 2941]])
による認証情報を表します。 [SRC[>>2 2.2]]

[12] >>2 は [[RFC 3986]] を参照しており、 >>2 でも [[RFC 3986]] でも明確にしていませんが、
[CODE(URI)[[[:]]]] で区切ることにより[[利用者名]]と[[合言葉]]を指定できます。
(>>2 のより古い [[I-D]] ではもっと明確になっていました。)

** host

[8] [[host]] は[['''必須''']]であり、 [[TN3270]] / [[TN3270E]]
で接続する[[ホスト]]を表します。 [SRC[>>2 2.2]]

;; [9] 「必須」の意味は明記されていませんが、[[空文字列]]であってはならないということでしょうか。

[10] 接続に使うという以上の意味は明記されていませんが、通常の [[DNS]]
などによって[[名前解決]]する名前、あるいは [[IPアドレス]]ということになるのでしょう。

** port

[13] [[port]] は [[TN3270]] / [[TN3270E]] で接続する[[ポート]]を表します。
[SRC[>>2 2.2]]

[14] [[既定のポート番号]]は [[23]] でなければ[['''なりません''']]。 [SRC[>>2 2.2]]

* 歴史

** RFC 1630

- [3] [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-05 02:20:47 +09:00]] 版) <http://tools.ietf.org/html/rfc1630#page-17>

[4] [[RFC 1630]] では [CODE(URI)@en[[[telnet:]]]] と共に [CODE(URI)@en[[[tn3270:]]]] 
にも言及されていましたが、 [[BNF]] 構文はなぜか [CODE(URI)@en[[[telnet:]]]]
のものしか規定がありませんでした。

** RFC 1738

- [5] [CITE@en[RFC 1738 - Uniform Resource Locators (URL)]] ([TIME[2011-06-07 02:14:23 +09:00]] 版) <http://tools.ietf.org/html/rfc1738#page-17>

[6] [[RFC 1738]] では [[scheme]] 名だけ予約されており、構文などの具体的な規定はありませんでした。

** RFC 6270 (2010-2011)

[24] [[RFC 1738]] は廃止され、実質的な規定もないまま [[IANA]] 登録簿に [CODE(URI)@en[[[tn3270:]]]]
[[URL]] が予約されたままになっていましたが、 [[RFC 6270]] によりようやく [[IETF]]
的に正式な定義がなされました。 [[RFC 6270]] は [[IETF]] [[標準化過程]] [[RFC]] です。

* 実装

[25] [CITE[URL Schemes Supported in Lynx]] ([TIME[2004-02-03 05:02:28 +09:00]] 版) <http://lynx.isc.org/lynx2.8.5/lynx2-8-5/lynx_help/lynx_url_support.html#telnet_url>

[26] >>25 によれば、 [[Lynx]] では実際の処理は他の適当なソフトウェアに任せているものの、
大抵は [[password]] が指定されていたとしても無視して[[利用者]]に問い合わせるようです。

* 関連

[27] [CODE(URI)@en[[[tn3270:]]]] は歴史的に [CODE(URI)@en[[[telnet:]]]] や 
[CODE(URI)@en[[[rlogin:]]]] とまとめて扱われることがよくありました。
いずれも[[プロトコル]]が違うだけで構文は共有していました。