名 前
uri, url, urn − uniform resource identifier (URI), URL と URN も 含 む .
書 式
URI = [ absoluteURI | relativeURI ] [ "#" fragment ] | |
absoluteURI = scheme ":" ( hierarchical_part | opaque_part ) | |
relativeURI = ( net_path | absolute_path | relative_path ) [ "?" query ] | |
scheme = "http" | "ftp" | "gopher" | "mailto" | "news" | "telnet" | |
"file" | "man" | "info" | "whatis" | "ldap" | "wais" | ...
hierarchical_part = ( net_path | absolute_path ) [ "?" query ] | |
net_path = "//" authority [ absolute_path ] | |
absolute_path = "/" path_segments | |
relative_path = relative_segment [ absolute_path ] |
説 明
Uniform Resource Identifier (URI) は 抽 象 的 ・ 物 理 的 な リ ソ ー ス (web ペ ー ジ な ど ) を 識 別 す る た め の 短 い 文 字 列 で あ る 。 Uniform Resource Locator (URL) は URI の 一 種 で 、 リ ソ ー ス の 名 前 な ど の 属 性 で で は な く 、 そ の リ ソ ー ス に 対 応 す る ア ク セ ス メ カ ニ ズ ム を 通 し て リ ソ ー ス を 指 定 す る (つ ま り ネ ッ ト ワ ー ク 上 の 「 場 所 (location)」 を 指 定 す る )。 Uniform Resource Name (URN) は URI の 一 種 で 、 こ れ は 対 象 の リ ソ ー ス が 廃 棄 さ れ た り 利 用 で き な く な っ た 場 合 に も 、 グ ロ ー バ ル に 他 と 重 な る こ と な く 永 続 し な け れ ば な ら な い 。
URI は 、 web ブ ラ ウ ザ な ど の ツ ー ル で ハ イ パ ー テ キ ス ト リ ン ク の リ ン ク 先 を 指 定 す る 時 の 標 準 的 な 方 法 で あ る 。 文 字 列 "http://www.kernelnotes.org" は URL で あ る (従 っ て URI で も あ る )。 多 く の 人 々 は 、 URL と い う 言 葉 を ほ ぼ URI の 同 義 語 と し て 使 っ て い る (し か し 技 術 的 に は URL は URI の サ ブ セ ッ ト で あ る )。
URI は 絶 対 的 に も 相 対 的 に も 指 定 で き る 。 絶 対 的 な 指 定 は 、 リ ソ ー ス を コ ン テ ク ス ト に 依 存 し な い か た ち で 参 照 す る 。 相 対 的 な 指 定 は 、 リ ソ ー ス を 現 在 の コ ン テ ク ス ト か ら の 差 異 に よ っ て 記 述 す る 。 相 対 パ ス 参 照 で は 、 "." お よ び ".." だ け の パ ス 部 分 (path segment) は 特 別 な 意 味 を 持 ち 、 そ れ ぞ れ 「 現 在 の 階 層 レ ベ ル 」 お よ び 「 現 在 の 階 層 の 一 つ 上 の レ ベ ル 」 と し て 扱 わ れ る (Unix-like な シ ス テ ム と 同 様 )。 コ ロ ン 文 字 を 含 む パ ス 部 分 は 相 対 URI パ ス の 先 頭 に 用 い る こ と は で き な い (つ ま り "this:that" は ダ メ )。 ス キ ー ム 名 と 区 別 で き な い か ら で あ る 。 こ の よ う な 場 合 に は ./ を 前 置 す る こ と (つ ま り "./this:that" と す る )。 MS-DOS の 子 孫 (Microsoft Windows な ど ) は 、 デ バ イ ス 名 の コ ロ ン を URI で は 垂 直 バ ー ("|") に 置 き 換 え る 。 し た が っ て "C:" は "C|" と な る 。 フ ラ グ メ ン ト 指 定 子 (fragment identifier) は 、 (も し 含 ま れ て い れ ば ) リ ソ ー ス 中 の 名 前 付 け さ れ た 特 定 の 部 分 (フ ラ グ メ ン ト ) を 参 照 す る 。 '#' 指 定 子 以 降 の 文 字 列 が フ ラ グ メ ン ト を 指 定 す る 。 '#' で 始 ま る URI は 現 在 の リ ソ ー ス 中 の フ ラ グ メ ン ト を 参 照 す る 。 URI の ス キ ー ム に は 色 々 な 種 類 が あ り 、 そ れ ぞ れ 固 有 の ル ー ル や 意 味 が 追 加 さ れ て い る 。 し か し で き る だ け 統 一 し た も の に し よ う と い う 努 力 も な さ れ て い る 。 例 え ば 、 多 く の URL ス キ ー ム は 「 機 関 (authority)」 に 対 し て 以 下 の 書 式 (こ こ で は ip_server と 呼 ぶ こ と に す る ) を 許 し て い る (角 括 弧 内 部 は 省 略 可 能 )。
ip_server = [user [ : password ] @ ] host [ : port] こ の フ ォ ー マ ッ ト に は 、 ユ ー ザ 名 、 ユ ー ザ 名 +パ ス ワ ー ド を 指 定 で き る 。 ポ ー ト 番 号 を 追 加 す る こ と も 可 能 で あ る 。 host |
は ホ ス ト コ ン ピ ュ ー タ の 名 前 で 、 DNS で 定 義 さ れ る 名 前 か IP ア ド レ ス (ピ リ オ ド で 区 切 ら れ た 数 字 ) で 指 定 す る 。 し た が っ て URI <http://fred:fredpassword [AT] xyz.com:8080/> は 、 ホ ス ト xyz.com に fred と し て (パ ス ワ ー ド を 使 っ て ) ポ ー ト 8080 を 使 っ て ロ グ イ ン す る 。 パ ス ワ ー ド は 可 能 な ら URI に は 含 め な い ほ う が 良 い だ ろ う 。 パ ス ワ ー ド を 直 書 き す る と 様 々 な セ キ ュ リ テ ィ 上 の リ ス ク が 生 じ る か ら で あ る 。 URL に ユ ー ザ 名 だ け を 与 え 、 パ ス ワ ー ド を 与 え な い 場 合 は 、 リ モ ー ト サ ー バ は パ ス ワ ー ド を 要 求 し て く る 。 URL を 解 釈 し た プ ロ グ ラ ム が 、 ユ ー ザ に こ の 入 力 を 促 す こ と に な ろ う 。 以 下 に 、 Unix-like な シ ス テ ム で 非 常 に 良 く 用 い ら れ て お り 、 多 く の ツ ー ル が 理 解 す る ス キ ー ム を 示 す 。 URI を 使 う ツ ー ル の 多 く で は 、 内 部 ス キ ー ム や 特 殊 な ス キ ー ム も 使 え る こ と が 多 い 。 そ の よ う な ス キ ー ム に 関 し て は ツ ー ル の ド キ ュ メ ン ト を 見 る こ と 。
http − Web (HTTP) サ ー バ
http://ip_server/path
http://ip_server/path?query こ
れ は web (HTTP) サ ー バ
に ア ク セ ス す
る た め の URL で あ
る 。 デ フ ォ ル
ト の ポ ー ト は
80。 パ ス が デ ィ
レ ク ト リ を 参
照 し て い る と
き は 、 返 さ れ
る 情 報 は web サ ー
バ が 選 択 す る
。 通 常 は 、
"index.html" や "index.htm"
の よ う な フ ァ
イ ル が あ れ ば
、 そ の 内 容 が
返 さ れ る 。 な
け れ ば 、 カ レ
ン ト デ ィ レ ク
ト リ の リ ス ト
が (適 切 な リ ン
ク と と も に ) 生
成 さ れ て 返 さ
れ る 。 例 と し
て は <http://lwn.net> な ど
。 問 い 合 わ せ
(query) を 、 古 い
"isindex" フ ォ ー マ
ッ ト に よ っ て
送 る こ と も で
き る 。 こ の フ
ォ ー マ ッ ト は
単 語 ま た は フ
レ ー ズ か ら な
り 、 等 号 (=) は 含
ま な い 。 よ り
長 い "GET" フ ォ ー
マ ッ ト で も 問
い 合 わ せ は 行
え る 。 こ の フ
ォ ー マ ッ ト に
は 、 一 つ 以 上
の 問 い 合 わ せ
エ ン ト リ が
key=value と い う 形
式 で 含 ま れ る
。 そ れ ぞ れ の
エ ン ト リ は ア
ン パ サ ン ド (&)
で 区 切 ら れ る
。 key は 複 数 個
指 定 す る こ と
も で き る 。 し
か し そ れ に 意
味 が あ る か ど
う か は web サ ー バ
と ア プ リ ケ ー
シ ョ ン プ ロ グ
ラ ム が 決 め る
。 HTML/XML/SGML と GET 問 い
合 わ せ 形 式 の
間 に は 、 不 幸
な 関 係 が あ る
。 一 つ 以 上 の
キ ー の 含 ま れ
る URI が SGML/XML 文 書 (HTML
も そ う ) に 埋 め
こ ま れ る 際 に
は 、 ア ン パ サ
ン ド (&) は & と
書 か な け れ ば
な ら な い 。 全
て の 問 い 合 わ
せ が こ の 形 式
を 使 う わ け で
は な い 。 フ ォ
ー ム が 長 く な
る と URI に 入 れ る
に は 長 す ぎ る
か ら 、 別 の 通
信 メ カ ニ ズ ム (POST
と 呼 ば れ る ) が
用 い ら れ る 。 POST
で は URI に は デ ー
タ は 含 ま れ な
い 。 よ り 詳 し
い 情 報 は 、
<http://www.w3.org/CGI> に あ る
Common Gateway Interface の 仕 様 書
を 見 よ 。
ftp − フ ァ イ ル 転 送 プ ロ ト コ ル (FTP)
ftp://ip_server/path こ れ は フ ァ イ ル 転 送 プ ロ ト コ ル (FTP) を 通 し て フ ァ イ ル に ア ク セ ス す る た め の URL で あ る 。 デ フ ォ ル ト の (制 御 用 ) ポ ー ト は 21 で あ る 。 ユ ー ザ 名 が な い 場 合 に は 、 ユ ー ザ 名 anonymous が 与 え ら れ る 。 そ し て そ の 場 合 に は 、 ク ラ イ ア ン ト の 多 く は 要 求 し た 人 の イ ン タ ー ネ ッ ト メ ー ル ア ド レ ス を パ ス ワ ー ド と し て 与 え る 。 例 と し て は <ftp://ftp.is.co.za/rfc/rfc1808.txt> な ど 。
gofer − Gofer サ ー バ
gopher://ip_server/gophertype
selector
gopher://ip_server/gophertype
selector%09search
gopher://ip_server/gophertype
selector%09search%09gopher+_string
デ フ ォ ル ト の gopher
ポ ー ト は 70 で あ
る 。 gophertype は 1 文
字 か ら な る フ
ィ ー ル ド で 、 URL
が 参 照 し て い
る Gopher の リ ソ ー ス
タ イ プ を 示 す
。 パ ス 全 体 が
空 で あ っ て も
よ く 、 そ の 場
合 は 区 切 り の
"/" も 省 略 で き
る 。 こ の と き
gophertype の デ フ ォ ル
ト は "1" に な る
。
selector は Gopher セ レ ク タ 文 字 列 で あ る 。 Gopher プ ロ ト コ ル で は 、 Gopher セ レ ク タ 文 字 列 は オ ク テ ッ ト 文 字 か ら な り 、 16進 数 の 09 (US-ASCII の HT ま た は tab)、 0A (US-ASCII の LF 文 字 )、 0D (US-ASCII の CR 文 字 ) 以 外 な ら ど ん な オ ク テ ッ ト も 指 定 で き る 。
mailto − 電 子 メ ー ル ア ド レ ス
mailto:email-address こ れ は 電 子 メ ー ル ア ド レ ス で 、 通 常 name@hostname と い う 形 式 を と る 。 電 子 メ ー ル ア ド レ ス の 正 し い フ ォ ー マ ッ ト に 関 す る よ り 詳 し い 情 報 は mailaddr(7) を 見 よ 。 % 文 字 は す べ て %25 と 書 き 直 さ な け れ ば な ら な い こ と に 注 意 。 例 と し て は <mailto:dwheeler [AT] dwheeler.com> な ど 。
news − ニ ュ ー ス グ ル ー プ ・ ニ ュ ー ス メ ッ セ ー ジ
news:newsgroup-name
news:message-id
newsgroup-name は ピ リ オ ド で 区 切 ら れ た 階 層 的 な 名 前 で あ る 。 例 え ば "comp.infosystems.www.misc" な ど 。 <newsgroup-name> が "*" (つ ま り <news:*>) の 場 合 に は 、 「 参 照 で き る 全 て の ニ ュ ー ス グ ル ー プ 」 の 意 味 に な る 。 例 と し て は <news:comp.lang.ada> な ど 。
message-id は http://www.ietf.org/rfc/rfc1036.txt">IETF RFC 1036 の Message-ID か ら 、 囲 み の "<" と ">" を 取 っ た も の に 対 応 す る 。 Message-ID は unique@full_domain_name と い う 形 式 を と る 。 メ ッ セ ー ジ の 指 定 に は "@" 文 字 が 含 ま れ る の で 、 ニ ュ ー ス グ ル ー プ の 名 前 と 区 別 で き る だ ろ う 。
telnet − telnet ロ グ イ ン
telnet://ip_server/
Telnet URL ス キ ー ム は 対 話 的 な テ キ ス ト サ ー ビ ス に Telnet プ ロ ト コ ル を 通 し て ア ク セ ス す る た め に 用 い ら れ る 。 最 後 の "/" 文 字 は 省 略 し て よ い 。 例 と し て は <telnet://melvyl.ucop.edu/> な ど 。
file − 通 常 の フ ァ イ ル
file://ip_server/path_segments
file:path_segments こ れ は
ロ ー カ ル に 直
接 ア ク セ ス で
き る フ ァ イ ル
を 示 す 。 特 殊
な ケ ー ス と し
て 、 host に は
"localhost" と い う 文
字 列 を 用 い た
り 、 空 文 字 に
し て も よ い 。
こ れ は 「 URI が 解
釈 さ れ た マ シ
ン 」 と み な さ
れ る 。 path が デ ィ
レ ク ト リ の 場
合 は 、 ビ ュ ー
ア は デ ィ レ ク
ト リ の 内 容 を
リ ン ク を 張 っ
た か た ち で 表
示 す る と よ い
だ ろ う 。 し か
し 現 在 は 、 ま
だ 全 て の ビ ュ
ー ア が こ の 動
作 を す る わ け
で は な い 。 KDE は
生 成 フ ァ イ ル
(generated file) を URL <file:/cgi-bin> の
形 式 で サ ポ ー
ト し て い る 。
与 え ら れ た フ
ァ イ ル が 見 付
か ら な か っ た
場 合 は 、 フ ァ
イ ル 名 を グ ロ
ブ に よ っ て 展
開 す る と 良 い
か も し れ な い
(glob(7) お よ び glob(3)
を 見 よ )。 二 つ
め の 書 式 (例 え
ば <file:/etc/passwd>) も ロ
ー カ ル フ ァ イ
ル を 参 照 す る
正 し い フ ォ ー
マ ッ ト で あ る
。 し か し 古 い
標 準 で は こ の
書 式 を 許 し て
い な か っ た の
で 、 こ れ を URI と
し て 認 識 し な
い プ ロ グ ラ ム
も 存 在 す る 。
よ り 汎 用 的 な
文 法 は 、 サ ー
バ 名 に 空 文 字
を 用 い る も の
、 つ ま り
<file:///etc/passwd> の よ う
な も の で あ る
。 こ の 形 式 も
指 す 内 容 は 同
じ で あ り 、 パ
タ ー ン マ ッ チ
や よ り 古 い プ
ロ グ ラ ム で も URI
と し て 認 識 さ
れ や す い 。 も
し 意 図 す る と
こ ろ が 「 現 在
の 場 所 か ら ス
タ ー ト 」 な ら
、 ス キ ー ム は
一 切 用 い る べ
き で は な い 。
<../test.txt> の よ う な
、 ス キ ー ム に
依 存 し な い 相
対 リ ン ク を 用
い る こ と 。 こ
の ス キ ー ム の
例 と し て は
<file:///etc/passwd> な ど 。
man − man ペ ー ジ 文 書
man:command-name
man:command-name(section) こ れ
は ロ ー カ ル の
オ ン ラ イ ン マ
ニ ュ ア ル (man) リ フ
ァ レ ス ペ ー ジ
を 参 照 す る 。
command-name に は 括 弧 と
セ ク シ ョ ン 番
号 を 追 加 し て
も よ い 。 セ ク
シ ョ ン 番 号 の
意 味 に つ い て
詳 し く 知 り た
い 場 合 は man(7) を
み よ 。 こ の URI ス
キ ー ム は Unix-like な
シ ス テ ム (Linux な ど
) に 特 有 の も の
で あ り 、 現 在
は ま だ IETF に よ る
登 録 は さ れ て
い な い 。 例 と
し て は <man:ls(1)> な
ど 。
info − info ペ ー ジ 文 書
info:virtual-filename
info:virtual-filename#nodename
info:(virtual-filename)
info:(virtual-filename)nodename こ
の ス キ ー ム は
、 オ ン ラ イ ン
の info リ フ ァ レ ン
ス ペ ー ジ (texinfo フ
ァ イ ル か ら 生
成 さ れ る ) を 参
照 す る 。 info ペ ー
ジ は GNU ツ ー ル な
ど の プ ロ グ ラ
ム で 用 い ら れ
て い る 文 書 フ
ォ ー マ ッ ト で
あ る 。 こ の URI ス
キ ー ム は Unix-like な
シ ス テ ム (Linux な ど
) に 特 有 の も の
で あ り 、 現 在
は ま だ IETF に よ る
登 録 は さ れ て
い な い 。 こ の
文 書 の 執 筆 時
に お い て 、 GNOME と
KDE は そ れ ぞ れ 異
な る 文 法 の URI を
用 い て お り 、
お 互 い 相 手 の
文 法 を 受 け 入
れ な い 。 最 初
の 2 つ の 書 式 は
GNOME の 書 式 で あ る
。 ノ ー ド 名 (nodename)
の ス ペ ー ス は
す べ て ア ン ダ
ー ス コ ア に 変
換 さ れ る 。 3 つ
め と 4 つ め は KDE の
書 式 で あ る 。
ノ ー ド 名 の ス
ペ ー ス は そ の
ま ま ス ペ ー ス
で 書 か れ る (URI の
標 準 で は 禁 止
さ れ て い る の
だ が )。 将 来 は
多 く の ツ ー ル
が こ れ ら の 書
式 す べ て を 理
解 す る よ う に
な り 、 ノ ー ド
名 の ア ン ダ ー
ス コ ア 、 ス ペ
ー ス を 両 方 と
も 理 解 で き る
よ う に な る こ
と を 期 待 し た
い 。 GNOME で も KDE で
も 、 ノ ー ド 名
が 省 略 さ れ た
場 合 は 、 ノ ー
ド 名 と し て "Top"
が 用 い ら れ る
。 GNOME 書 式 の 例 と
し て は <info:gcc> や
<info:gcc#G++_and_GCC> な ど 、 KDE
書 式 の 例 と し
て は <info:(gcc)> や
<info:(gcc)G++ and GCC> な ど 。
whatis − 文 書 検 索
whatis:string こ の ス キ ー ム は 、 コ マ ン ド に 関 す る 短 い (1 行 の ) 説 明 を 集 め た デ ー タ ベ ー ス を 検 索 し 、 string を 含 む 文 字 列 を リ ス ト し て 返 す 。 単 語 が 完 全 に マ ッ チ し た 結 果 だ け が 返 さ れ る 。 whatis(1) を 見 よ 。 こ の URI ス キ ー ム は Unix-like な シ ス テ ム (Linux な ど ) に 特 有 の も の で あ り 、 現 在 は ま だ IETF に よ る 登 録 は さ れ て い な い 。
ghelp − GNOME ヘ ル プ 文 書
ghelp:name-of-application 与 え ら れ た application に 対 応 す る GNOME help を ロ ー ド す る 。 こ の 書 式 を 用 い た 文 書 は ま だ あ ま り 多 く な い 。
ldap − 軽 量 デ ィ レ ク ト リ ア ク セ ス プ ロ ト コ ル
ldap://hostport
ldap://hostport/
ldap://hostport/dn
ldap://hostport/dn?attributes
ldap://hostport/dn?attributes?scope
ldap://hostport/dn?attributes?scope?filter
ldap://hostport/dn?attributes?scope?filter?extensions
こ の ス キ ー ム
は Lightweight Directory Access Protocol (LDAP)
へ の ク エ リ ー
を サ ポ ー ト す
る 。 LDAP は 複 数 の
サ ー バ に 分 散
し た 、 階 層 化
さ れ た 情 報 (人
々 や 計 算 資 源
な ど ) に 問 い 合
わ せ る た め の
プ ロ ト コ ル で
あ る 。 LDAP の URL ス
キ ー ム に 関 す
る よ り 詳 し い
情 報 は
http://www.ietf.org/rfc/rfc2255.txt">RFC 2255
で 見 る こ と が
で き る 。 こ の URL
の 各 部 は 以 下
の 通 り :
hostport ク エ リ ー を 行 う |
LDAP サ ー バ 。 ホ ス ト 名 を 書 く 。 続 け て コ ロ ン と |
ポ ー ト 番 号 を 追 加 す る こ と も で き る 。 LDAP の デ フ ォ ル ト の ポ ー ト は TCP ポ ー ト 389 で あ る 。 省 略 さ れ る と 、 ど の LDAP サ ー バ を 用 い る か は ク ラ イ ア ン ト が 決 定 す る 。
dn |
LDAP の Distintuished Name (識 別 名 )。 LDAP 検 索 の base オ ブ ジ ェ ク ト を 指 定 す る も の で あ る ( http://www.ietf.org/rfc/rfc2253.txt">RFC 2253 の section 3 を 見 よ )。
コ ン マ 区 切 り の 、 返 さ れ る 属 性 (attribute) の リ ス ト 。 RFC 2251 の section 4.1.5 を 見 よ 。 省 略 さ れ る と 全 て の 属 性 が 返 さ れ る 。
検 索 の ス コ ー プ を 指 定 す る 。 "base" (base オ ブ ジ ェ ク ト 検 索 ), "one" (1 レ ベ ル 検 索 ), "sub" (サ ブ ツ リ ー 検 索 ) の い ず れ か を 指 定 す る 。 省 略 す る と "base" が 仮 定 さ れ る 。
検 索 フ ィ ル タ (返 さ れ る エ ン ト リ の サ ブ セ ッ ト ) を 指 定 す る 。 省 略 さ れ る と 、 全 て の エ ン ト リ が 返 さ れ る 。 http://www.ietf.org/rfc/rfc2254.txt">RFC 2254 の section 4 を 見 よ 。 コ ン マ で 区 切 ら れ た type=value ペ ア の リ ス ト 。 こ こ で =value の 部 分 は 、 そ れ を 要 求 し な い オ プ シ ョ ン に 対 し て は 省 略 で き る 。 '!' が 前 置 さ れ た extension は critical (サ ポ ー ト し て い な け れ ば な ら な い ) で あ り 、 そ う で な け れ ば critical で は な い (省 略 で き る )。 LDAP の ク エ リ ー は 、 例 と と も に 説 明 す る の が 最 も 簡 単 で あ る 。 次 の 例 は 、 ldap.itd.umich.edu に 、 U.S. に あ る University of Michigan の 情 報 を 尋 ね る 例 で あ る 。 ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,c=US 郵 便 用 の 住 所 属 性 だ け を 取 得 す る 場 合 は 、 次 の よ う に リ ク エ ス ト す る : ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,c=US?postalAddress host.com の ポ ー ト 6666 に 、 University of Michigan に い る common name (cn) が "Babs Jenson" の 人 の 情 報 を 尋 ね る 場 合 は 、 次 の よ う に リ ク エ ス ト す る : ldap://host.com:6666/o=University%20of%20Michigan,c=US??sub?(cn=Babs%20Jensen) wais − 広 域 情 報 サ ー ビ ス wais://hostport/database
− _ . ! ~ * ’ ( ) 他 の 文 字 は す べ て エ ス ケ ー プ し な け れ ば な ら な い 。 エ ス ケ ー プ さ れ た オ ク テ ッ ト は 3 文 字 か ら な る : 先 頭 に パ ー セ ン ト 文 字 "%"、 そ れ に 続 け て オ ク テ ッ ト コ ー ド を 表 す 2 文 字 の 16 進 数 字 で あ る (16 進 数 の 英 字 は 大 文 字 小 文 字 ど ち ら で も 良 い )。 例 え ば 空 白 文 字 は "%20" の よ う に エ ス ケ ー プ し な け れ ば な ら ず 、 タ ブ 文 字 は "%09"、 "&" は "%26" と な る 。 パ ー セ ン ト 文 字 "%" は 常 に エ ス ケ ー プ を 示 す 予 約 さ れ た 目 的 に 用 い ら れ る の で 、 "%" 自 身 を 表 す に は "%25" と エ ス ケ ー プ し な け れ ば な ら な い 。 ク エ リ ー の テ キ ス ト で は 、 ス ペ ー ス 文 字 を プ ラ ス 記 号 (+) で エ ス ケ ー プ す る こ と も 一 般 に 良 く 行 わ れ る 。 こ の 慣 例 は 関 連 RFC で 実 際 に 定 義 さ れ て い る わ け で は な い (代 わ り に %20 を 推 奨 し て い る ) が 、 ク エ リ ー テ キ ス ト を 受 付 け る ツ ー ル は 、 こ の 書 式 へ の 対 応 を 用 意 し て お く べ き で あ ろ う 。 URI は 、 常 に 「 エ ス ケ ー プ さ れ た 」 か た ち で 表 示 さ れ る 。 未 予 約 文 字 も エ ス ケ ー プ す る こ と が で き 、 こ れ に よ っ て URI の 意 味 す る と こ ろ が 変 わ る わ け で は な い 。 し か し URI に そ の 非 エ ス ケ ー プ 文 字 が 現 れ る こ と が 許 さ れ な い よ う な 特 殊 な 場 合 を 除 い て 、 こ れ は 避 け る べ き で あ る 。 例 え ば 、 HTTP URL の path に お い て "%7e" が "~" の 代 わ り に 用 い ら れ る こ と が あ る が 、 こ の 二 つ は HTTP URL と し て は 等 価 で あ る 。 US ASCII キ ャ ラ ク タ セ ッ ト 以 外 の 文 字 を URI と し て 扱 う 場 合 、 HTML 4.1 規 格 (section B.2) 及 び IETF RFC 2718 (section 2.2.5) は 以 下 の 手 法 を 用 い る よ う 推 奨 し て い る 。
URI エ ス ケ ー プ 機 構 を 用 い る 。 つ ま り 、 安 全 で な い オ ク テ ッ ト を %HH で エ ン コ ー ド す る 。 URI を
書 く に は URI の 書 式 は 曖 昧 さ を 排 除 す る よ う に 設 計 さ れ て い る 。 し か し URI が 広 ま る に つ れ 、 昔 な が ら の メ デ ィ ア (TV、 ラ ジ オ 、 新 聞 、 看 板 な ど な ど ) は URI 参 照 を 省 略 し た か た ち 、 す な わ ち 機 関 部 と パ ス 部 だ け で リ ソ ー ス を 指 定 す る こ と が 多 く な っ て い る (例 : <www.w3.org/Addressing>)。 こ の よ う な 参 照 は マ シ ン と い う よ り は 人 間 向 け の も の で 、 コ ン テ キ ス ト ベ ー ス の 推 測 に よ っ て URI の 補 完 が 可 能 で あ る こ と を あ て に し て い る の で あ る (例 え ば "www" で は じ ま る ホ ス ト 名 な ら "http://" が つ く だ ろ う し 、 "ftp" で は じ ま る ホ ス ト 名 な ら "ftp://" が つ く だ ろ う )。 多 く の ク ラ イ ア ン ト の 実 装 で は 、 こ の 種 の 参 照 を 推 測 に よ っ て 解 決 す る 。 こ の よ う な 推 測 は 時 代 と と も に 変 わ り う る 。 特 に 新 し い ス キ ー ム が 導 入 さ れ る と そ う で あ る 。 URI の 省 略 形 で は 相 対 URL パ ス の 区 別 が 付 け ら れ な い の で 、 省 略 形 URI 参 照 は 相 対 URI の 利 用 で き る と こ ろ で は 使 え な い 。 つ ま り 定 義 済 み の ベ ー ス (ダ イ ア ロ グ ボ ッ ク ス な ど ) が な い 場 合 に 限 っ て 利 用 で き る 。 文 書 内 部 で の ハ イ パ ー テ キ ス ト リ ン ク に は 省 略 形 URI を 使 っ て は な ら な い 。 上 述 の 標 準 フ ォ ー マ ッ ト を 使 う こ と 。 準 拠http://www.ietf.org/rfc/rfc2396.txt
(IETF RFC 2396), 注 意Linux シ ス テ ム で URI を 受 付 け る ツ ー ル (例 え ば web ブ ラ ウ ザ な ど ) は 、 上 に あ げ た 全 て の ス キ ー ム を (直 接 ま た は 間 接 に ) 扱 え る べ き で あ る 。 man: や info: も 含 め て 、 で あ る 。 ス キ ー ム の 処 理 に 他 の プ ロ グ ラ ム を 実 行 す る の は 良 い こ と だ し 、 実 は す す ん で そ う す べ き で あ る 。 技 術 的 に は 、 フ ラ グ メ ン ト は URI の 一 部 で は な い 。 URI (URL
も 含 む ) を デ ー
タ フ ォ ー マ ッ
ト に 埋 め こ む
方 法 に 関 す る
情 報 は 、 そ の
フ ォ ー マ ッ ト
の ド キ ュ メ ン
ト を 見 よ 。 HTML は
<A HREF="uri">text</A>
を 用 い る 。 texinfo
は @uref{uri} と い う
書 式 を 用 い る
。 man と mdoc は 、 最
近 追 加 さ れ た UR
マ ク ロ を 使 う
。 あ る い は URI を
そ の ま ま テ キ
ス ト に 埋 め こ
む (ビ ュ ー ア が ://
を URI の 一 部 と 解
釈 で き な け れ
ば な ら な い )。
デ ス ク ト ッ プ
環 境 で あ る GNOME と
KDE は 、 そ れ ぞ れ
受 付 け る URI が (特
に そ れ ぞ れ の
ヘ ル プ ブ ラ ウ
ザ に お い て ) 異
な っ て い る 。 man
ペ ー ジ を リ ス
ト す る に は 、 GNOME
で は <toc:man> を 用 い
、 KDE で は <man:(index)> を
用 い る 。 ま た info
ペ ー ジ を リ ス
ト す る に は 、 GNOME
で は <toc:info> を 用
い 、 KDE で は <info:(dir)>
を 用 い る (本 man ペ
ー ジ の 著 者 は KDE
の ア プ ロ ー チ
の ほ う が 好 み
で あ る 。 し か
し よ り 標 準 的
な 書 式 の 方 が
更 に 良 い が )。
一 般 に KDE は 生 成
フ ァ イ ル (generated file)
の プ レ フ ィ ッ
ク ス と し て
<file:/cgi-bin/> を 用 い る
。 KDE は HTML の 文 書
を <file:/cgi-bin/helpindex> 経 由
で ア ク セ ス す
る の が 好 み な
よ う で あ る 。 GNOME
は 文 書 の 保 管
・ 検 索 に ghelp ス キ
ー ム を 用 い る
方 法 を 取 っ て
い る よ う だ 。
ど ち ら の ブ ラ
ウ ザ も 、 現 時
点 で は file: に よ る
デ ィ レ ク ト リ
参 照 を 扱 え な
い 。 し た が っ
て デ ィ レ ク ト
リ 全 体 を ブ ラ
ウ ズ 可 能 な URI で
参 照 す る こ と
が 難 し い 。 先
に 述 べ た よ う
に 、 こ れ ら 二
つ の 環 境 で は info:
ス キ ー ム の 扱
い が 異 な っ て
い る (お そ ら く
最 も 重 要 な 差
異 で あ ろ う )。 GNOME
と KDE が 共 通 URI フ
ォ ー マ ッ ト に
収 斂 す る こ と
が 望 ま し い 。
こ の man ペ ー ジ が
、 将 来 は そ の
収 斂 し た 結 果
を 記 述 で き る
こ と を 望 む 。
こ の 作 業 へ の
助 力 を 喚 起 し
た い 。 セ キ ュ
リ テ ィ URI に 、 そ の プ ロ ト コ ル に 対 す る デ リ ミ タ が エ ス ケ ー プ さ れ た か た ち で 入 っ て い る 場 合 も 注 意 が 必 要 で あ る (例 え ば telnet プ ロ ト コ ル に 対 す る CR 文 字 や LF 文 字 な ど )。 な ぜ な ら こ れ ら は 転 送 前 に エ ス ケ ー プ が 外 さ れ な い か ら で あ る 。 こ れ は プ ロ ト コ ル に 反 し て お り 、 予 期 し な い 、 お そ ら く は 害 に な る よ う な リ モ ー ト 動 作 を 引 起 こ す 結 果 と な り か ね な い 。 秘 密 に し て お く べ き パ ス ワ ー ド を 含 ん だ URI を 使 う の が 賢 く な い の は 明 ら か で あ る 。 特 に 、 パ ス ワ ー ド を URI の "userinfo" の 部 分 に 使 う の は 絶 対 に 避 け る べ き で あ る 。 た だ し そ の "password" の パ ラ メ ー タ を 意 図 的 に 公 開 し た い 場 合 は 別 で あ る が 。 バ グ文 書 は 様 々 な 場 所 に 置 か れ う る 。 し た が っ て 現 時 点 で は 、 任 意 の フ ォ ー マ ッ ト で 書 か れ た 一 般 の オ ン ラ イ ン 文 書 に 対 す る 良 い URI ス キ ー ム が 存 在 し な い 。 <file:///usr/doc/ZZZ> 形 式 の 参 照 は 使 え な い 。 な ぜ な ら デ ィ ス ト リ ビ ュ ー シ ョ ン や ロ ー カ ル へ の イ ン ス ト ー ル の 際 の 条 件 に よ っ て 、 フ ァ イ ル は 異 な る デ ィ レ ク ト リ に 置 か れ る こ と が あ る か ら で あ る (/usr/doc か /usr/local/doc か /usr/share か そ の 他 の 場 所 か 、 な ど な ど )。 ま た 、 デ ィ レ ク ト リ ZZZ は 通 常 バ ー ジ ョ ン が 変 わ る と 異 な っ た も の に な る (フ ァ イ ル 名 の グ ロ ブ に よ っ て あ る 程 度 克 服 で き る だ ろ う が )。 最 後 に も う 一 つ 、 文 書 を イ ン タ ー ネ ッ ト か ら (ロ ー カ ル の フ ァ イ ル シ ス テ ム に フ ァ イ ル を ロ ー ド す る の で は な く ) 動 的 に ロ ー ド す る 人 々 は 、 な か な か file: ス キ ー ム を 使 っ て く れ な い 。 将 来 に は 新 た な URI ス キ ー ム (例 え ば "userdoc:" の よ う な ) が 追 加 さ れ 、 よ り 詳 し い 文 書 へ の ク ロ ス リ フ ァ レ ン ス が 、 そ の 文 書 の 正 確 な 場 所 を プ ロ グ ラ ム が 知 ら な く て も 可 能 に な る か も し れ な い 。 あ る い は 、 フ ァ イ ル シ ス テ ム 規 格 の 将 来 の 版 で フ ァ イ ル の 場 所 の 指 定 を よ り 厳 密 に し て 、 file: ス キ ー ム に よ る 文 書 の 位 置 指 定 が 可 能 に な る か も し れ な い 。 プ ロ グ ラ ム や フ ァ イ ル フ ォ ー マ ッ ト の 多 く で は 、 URI を 使 っ た リ ン ク を 取 り 込 ん だ り 実 装 し た り す る 方 法 が な い 。 プ ロ グ ラ ム の 多 く は 、 こ れ ら の URI フ ォ ー マ ッ ト を す べ て は 扱 え な い 。 ユ ー ザ の 環 境 (テ キ ス ト か グ ラ フ ィ ッ ク か 、 デ ス ク ト ッ プ 環 境 、 ロ ー カ ル ユ ー ザ の 好 み 、 現 在 実 行 さ れ て い る ツ ー ル ) な ど を 自 動 的 に 検 知 し て 、 任 意 の URI を ロ ー ド し 、 そ の URI に 適 し た ツ ー ル を 起 動 す る よ う な 標 準 的 な 仕 組 み が あ る と い い の だ ろ う が 。 関 連 項 目lynx(1), man2html(1), mailaddr(7), utf-8(7), http://www.ietf.org/rfc/rfc2255.txt">IETF RFC 2255 |