last modified 8th/Oct. 2000
WWW 上の全てのファイル(リソース)は、統一的な仕組みで名付けられた、世界中で一意的な名前を持っています。一意的と云うのは、世界中で当該ファイルの名前が唯一つであり、絶対に重複しないと云う意味です。この WWW 上で一意的であるように統一された名前の仕組みを、 URI (Uniform Resource Identifier) と呼びます。 WWW における「場所」を指定する URL (Uniform Resource Locator) と、場所ではなく「名前」を指定する URN (Uniform Resource Name) を含めた概念です。 URL は URI に含まれていることに注意してください。
URI の U が、 Uniform (統一的)か Universal (普遍的)かは異説があり、公式文書にも両方が見られます。ここでは、両方の意味を踏まえた U だとしておきましょう。
URL は スキーム://マシン名/パス
と云う形式で表されます。例えば、 http://www.yahoo.co.jp/
などのことです。 URN は馴染みが無いかもしれませんが、ここでは詳細には立ち入りません。もし URN でリソースが指定できれば、リソースの位置が移動しても、同じ URN でアクセスできることになり、非常に有用だと云えます。
URI は、 DTD 中ではパラメタ実体 %URI;
として表現されます。
URI は、a 要素、 link 要素の href 属性、 img 要素、 frame 要素、 iframe 要素などの src 属性などの他に、 cite 属性、 longdesc 属性などの値としても利用されます。
URI の完全な形式を、完全 URI (full URI) と呼びます。これは WWW 上での絶対パスのことで、相対 URI と相互に補完する概念です。
http://www.fides.dti.ne.jp/%7Esugai/public/index.html
http
www.fides.dti.ne.jp
/%7Esugai/public/index.html
http
は、 HTML などの文書を受信するときに用いる仕組みである HTTP プロトコルをいみします。 ftp
は、ファイルの送受信に利用する FTP プロトコルを意味します。利用例;
<a href="http://www.w4.org">W3C</a> <img src="http://www.w3.org/Icons/WWW/w3c_home" src="W3C">
full URI に対して、相対 URI と云う形式があります。サイト内のリンクは、通常相対 URI を利用します。
相対 URI は、基準 URI に対する相対的な位置を指定する相対パスです。特別に指定しない限り、或るファイルに対する基準 URI は、当該文書の full URI が利用されます。例えば、 http://www.foo.com/hoge/hoge/test.html
の基準 URI は、 http://www.foo.com/hoge/hoge/test.html
になります。
通常は、相対 URI は当該文書に対する相対的位置です。このため、一連のリソース群が、物理的にどのマシン上にあっても(自宅の PC でもインターネット上のホスト・マシンであっても)、リソース間の相対的な位置が崩れていなければ、相対 URI は同じリソースを指し示せます。
./index.html, ./title.gif, etc.
../index.html, ../title.gif, etc.
./contents/index.html, ./image/title.gif, etc.
../../index.html, ../../title.gif, etc.
ディレクトリとは、 Win., Mac. で云う「フォルダ」と同じことです。
自分と同じディレクトリは .
、一つ上のディレクトリであれば ..
で指し示します。ディレクトリやファイルの間は /
で区切ります。但し、 /
から始まる相対 URI (/home/index.html
など) は特別で、当該ホストマシンのルートディレクトリからの絶対パスを意味します。
ディレクトリの階層構造が次のようになっていたとしましょう。
/root/ | |--/cover/ | |--index.html | |--toc.html | |--/contents/ | |--index.html | |--/text/ | |--index.html | |--physics.html |--/images/ |--title.gif |--icon.gif
1. ディレクトリ /cover/ の中のファイル index.html から、同じディレクトリ内のファイル toc.html を参照する場合の相対 URI はどうなるでしょうか?
答; ./toc.html
2. ディレクトリ /text/ の中のファイル index.html から、 /cover/ の中の toc.html を参照する場合の相対 URI はどうなるでしょうか?
答; ../../toc.html
3. ディレクトリ /cover/ の中のファイル toc.html から、 /physics/ の中の index.html を参照する場合の相対 URI はどうなるでしょうか?
答; ./contents/phtsics/index.html
4. ディレクトリ /cover/ の中のファイル index.html から、ディレクトリ /images/ の中のファイル title.gif を参照する場合の相対 URI はどうなるでしょうか?
答; ../images/title.gif
5. 最後の問題です。ディレクトリ /text/ の中のファイル index.html から、ディレクトリ /images/ の中にあるファイル icon.gif を参照する場合の相対 URI はどうなるでしょうか?
答; ../../../images/icon.gif
基準 URI は、通常は当該文書の full URI です。
しかし、 BASE
要素を利用すると、実際に当該文書がどこにあろうとも関係なく、基準 URI を明示的に指定できます。 BASE 要素は HEAD 要素の子供要素として定義されています。
<!ELEMENT BASE - O EMPTY -- document base URI --> <!ATTLIST BASE href %URI; #IMPLIED -- URI that acts as base URI -- target %FrameTarget; #IMPLIED -- render in this frame -- >
BASE 要素は href 属性と target 属性だけが許されています。また、開始タグのみで終了タグが存在しない空要素です。この要素は HEAD 要素の開始タグ (<head>
) の直後に記述するように心掛けてください。
<head> <base href="http://www.fides.dti.ne.jp/%7Esugai/public/"> ... </head>
HEAD 要素内に上のような BASE 要素が与えられた文書があったとします。すると、この文書の基準 URI は次のようになります;
http://www.fides.dti.ne.jp/%7Esugai/public/
ここに、当該文書の実際の位置(フル URI)は関係しません。例えば、この文書内に次のような相対 URI が存在したと仮定します;
<a href="./web/index.html">Web サイト作成支援</a>
この相対 URI は、基準 URI に対してフル URI に翻訳されますから、指し示す位置は、
http://www.fides.dti.ne.jp/%7Esugai/public/web/index.html
となります。
HTML ファイル内の name 属性や id 属性の値で、ファイルの「部分」を指定できます。例えば、 toc
と名付けられた部分を参照する場合は、次のようになります;
http://somesite.com/html/top.html#toc
詳しい利用法は「終点アンカー」を参照ください。
URI の命名体系の例です;
ftp://ftp.is.co.za/rfc/rfc1808.txt -- ftp scheme for File Transfer Protocol services
ftp
と云う仕組み(プロトコル)で利用する計算機 ftp.is.co.za
の、 /rfc
と云うパスでアクセスできるディレクトリの中のファイル rfc1808.txt
を指定。
http://www.math.uio.no/faq/compression-faq/part1.html -- http scheme for Hypertext Transfer Protocol services
http
と云う仕組み(プロトコル)で利用する計算機 www.math.uio.no
の、 /faq/compression-faq
と云うパスでアクセスできるディレクトリの中のファイル part1.html
を指定。
mailto:mduerst@ifi.unizh.ch -- mailto scheme for electronic mail addresses
mailto
と云う仕組み(プロトコル)は電子メール (E-mail) を扱うプロトコルです。アドレス mduerst@ifi.unizh.ch
が指定されています。
gopher://spinaltap.micro.umn.edu/00/Weather/California/Los%20Angeles -- gopher scheme for Gopher and Gopher+ Protocol services news:comp.infosystems.www.servers.unix -- news scheme for USENET news groups and articles telnet://melvyl.ucop.edu/ -- telnet scheme for interactive services via the TELNET Protocol
次に、ファイル名、ディレクトリ名など、 HTML で利用する「名前」に付いて一般的な注意をまとめました。