B. URI

since: 31st/Aug./2001; last modified: 5th/Sep./2001

URI は Uniform Resource Identifiers の略で、 [URI] で定義される規則に従います。基本的には、 URLURN をあわせた概念です。

URL
ネットワーク上での位置で示す、原始的なメカニズムによる識別方法。ネットワーク上では一意的に識別できるが、リソースが移動すれば URL も変わる。
URN
リソースを一意的且つ恒久的に識別する識別方法。

URI は、全ての要素に定義されている xmlns 属性、a 要素, link 要素href 属性、 head 要素profile 属性、 blockquote 要素, q 要素cite 属性、 form 要素の action 属性、 input 要素の src 属性、 img 要素の longdesc, src 属性などの属性値のデータ型として現れます。

URL の一般的な書式:

スキーム://サーバー.ドメイン/パス

例えば、次の例を見てみよう:

http://www.w3.org/TR/xsl/slice1.html

この例では、 "http" プロトコルで、 "org" ドメイン管轄下の "w3" ドメイン内のサーバー "www" 上に於けるパス "/TR/xsl/slice1.html" が指定されています。 org ドメイン内で w3 はただ一つであり、ドメイン w3 の www というサーバーはただ一つである。また、当該サーバー内におけるパスは一意的であるから、この URI は一意的なリソースの識別子になっています。

URI の実例:

ftp://ftp.is.co.za/rfc/rfc1808.txt
   -- File Transfer Protocol services の為の ftp スキーム
gopher://spinaltap.micro.umn.edu/00/Weather/California/Los%20Angeles
   -- Gopher と Gopher+ Protocol services の為の gopher スキーム
http://www.math.uio.no/faq/compression-faq/part1.html
   -- Hypertext Transfer Protocol services の為の http スキーム
mailto:mduerst@ifi.unizh.ch
   -- electronic mail addresses の為の mailto スキーム
news:comp.infosystems.www.servers.unix
   -- USENET news groups and articles の為の news スキーム
telnet://melvyl.ucop.edu/
   -- TELNET Protocol によるインタラクティブ・サービスの為の telnet スキーム

絶対 URI

プロトコルとドメインを完全に指定する URI を絶対 URI と呼びます。この URI は一意的であり、ネットワーク上の何処からでも、この URI を用いて、ただ一つのリソースを識別できます。

http://www.sugai.f2s.com/web/XHTML11/a.html

特に、最後のファイル名が省略された場合は、当該ファイルが存在するサーバーで設定されている標準ファイルが返されます。一般的には、 index.htmlindex.htm が採用されています。

絶対 URIhttp://www.sugai.f2s.com/web/
返されるリソースhttp://www.sugai.f2s.com/web/index.html
http://www.sugai.f2s.com/web/index.htm

ディレクトリ名で終了する場合は、最後のスラッシュ "/" の有無は本質的です。スラッシュがあれば、ファイル名が省略されているものと解釈され、上記のように標準ファイルが返されます。スラッシュが無ければ、必ずしもファイル名の省略とは解釈されません。つまり、 "http://www.sugai.f2s.com/web" と "http://www.sugai.f2s.com/web/" は必ずしも同じリソースを明示しません。

URI がディレクトリで終了した場合に、ファイルの省略と解釈して、当該ディレクトリ内の標準ファイルを返すのは、サーバの仕事です。サーバは、当該ディレクトリ内に標準ファイルに該当するファイルが無い場合は、アクセス権で保護していない限り、ディレクトリの内容を返します。

相対 URI

同じサーバー内の文書を指定する場合は、絶対 URI は冗長です。相対 URI を用いることができます。

相対 URI の基本書式

同じサーバー内のファイルは、ディレクトリの木構造のなかのどこかのディレクトリの中として指し示すことが出来ます。相対 URI は、この木構造における、基準位置からの相対的な位置を指し示すものです。基準位置は、特別に指定しない限り、当該ファイルが存在するディレクトリ(カレントディレクトリ)になります。

同じディレクトリ内の別のファイル test.html :

test.html
又は
./test.html

ピリオド "." は、現在いるディレクトリを指し示しています。 UNIX 系 OS のファイルシステムでは、カレントディレクトリを指し示すハードリンクに他なりません。

一つ上のディレクトリ内のファイル test.html :

../test.html

ピリオド二つ ".." は、現在いるディレクトリの一つ上の階層のディレクトリを指し示します。 UNIX 系 OS のファイルシステムでは、カレントディレクトリの親ディレクトリを指し示すハードリンクに他なりません。

一つ下のディレクトリ directory 内のファイル test.html :

./directory/test.html

相対 URI は、参照しているリソースから見た対象リソースの相対的な位置を指定します。したがって、元のリソースのネットワーク上での位置によって、指し示すリソースが変わります。

相対 URI の解決

相対 URI は、絶対 URI に変換されて始めて、一意性を獲得します。この変換を「解決」と呼びます。具体的には、相対 URI は基準 URI によって変換を受けます。

特に指定しない限り、基準 URI は当該リソースの絶対 URI が用いられます。絶対 URI "http://www.sugai.f2s.com/web/XHTML11/xmlns.html" で識別される文書内に記述された相対 URI "../index.html" は、次のように解決されます:

基準 URI: http://www.sugai.f2s.com/web/ XHTML11/xmlns.html
相対 URI: ../index.html
解決後 URI: http://www.sugai.f2s.com/web/ index.html

この文書内に記述された "./anchor.html":

http://www.sugai.f2s.com/web/XHTML11/anchor.html

この文書内に記述された "xml.html":

http://www.sugai.f2s.com/web/XHTML11/xml.html

この文書内に記述された "./dtd/modules.html":

http://www.sugai.f2s.com/web/XHTML11/dtd/modules.html

この文書内に記述された "../../index.html":

http://www.sugai.f2s.com/index.html

基準 URI の明示

相対 URI を解決する為の基準 URI は、特に指定しなければ、当該文書のネットワーク上での絶対 URI が採用されます。明示的に指定する場合は、 head 要素の内容に定義されている base 要素で明示します。

<head>
  <base href="http://www.sugai.f2s.com/web/" />
  <title>XHTML 1.1 入門</title>
</head>

当該文書の基準 URI は、当該文書の位置に寄らず、一意的に "http://www.sugai.f2s.com/web/" が採用されます。


Copyright © 2001, SUGAI, Manabu. All rights reserved. 著作権は放棄していません。