目次:
【第8回】URIとサーバ:SCP,FTP 第1章
第3章
--HTMLチェッカ
第4章
|
絶対URIと相対URI
【本節の目的】
相対URIとは何か、そしてどんな特徴があるのかなどについて学習します。 相対参照と絶対参照では、どちらが便利?相対参照に対して、皆さんは、以下のように感じていませんか?
確かに、ファイルを絶対参照により特定すると、 表現が一通りしかないので、気持としてはスッキリしますね。 しかし、常に / (ルートディレクトリ) から、 対象となるファイルが格納されているところまでの フォルダをすべて書く必要があるので、 参照名が長くなりとても大変です。 常に、絶対参照でファイル名を表現することを想像すると、 いやになりませんか? ところで、ファイルを操作するときには、 「今編集しているファイルと同じフォルダにあるXXXXというファイル」 とか、 単に「YYYYと言うファイル」などと、よく言っていませんか。 これでファイルが特定できているということは、 「常に着目しているフォルダがあり、そこを起点として相対的にファイルを見ている」 ということになります。 つまり、相対参照の方が多くの場合、自然な表現方法なのです。 皆さんは会話するとき、「隣町のパン屋さん」とか「9丁目のパン屋さん」 と言うのが普通で、 いつも「日本国熊本県熊本市黒髪9丁目のパン屋さん」とは言ったら変でしょう。 これも同じで、我々は日常的に相対的な呼び方をして、 きちんと一つを特定しており、こちらの方が一般的なのです。 また、相対参照しておくと、 着目しているフォルダ近辺の構造しか関係ないため、 上位階層のフォルダ名やフォルダの構成が変っても、 参照名の変更の必要がないことが多くなります。 例えば、何度も出て来た下図で、「w05」を「week05」に、また、 ソフトクリームのex1.htmを含むフォルダ名を「test」から「ice」に変更すると、 ソフトクリームのex1.html の参照名はどうなるでしょうか。 ![]() 熊太郎から見た相対参照では、「./ex1.html」のままで変りませんが、 絶対参照では、「/public_html/w05/test/ex1.html」から 「/public_html/week05/ice/ex1.html」に変ってしまいます。
この「相対参照で表記しておくと、
フォルダ構成等の変更による表記のへ影響が少ない」という特長は、
WWWサーバ上にWebページを構築していくとき、非常に有用になります。
それは、以下の理由からです。 ですから、みなさんも早く相対参照に慣れておいてください。 そうすれば、不必要な作業を強いられないようにになります。
(註) ただし、以下のような場合は、絶対参照の方が便利ですので、
必ず相対参照しなさいと言うわけではありません。
絶対URIと相対URIこれまで、絶対参照について、 「表現が一つしかない確実な特定方法である」と説明してきました。 ただし、良く考えてみるとこれは、一つのWWWサーバ上での話です。 もし、別のWWWサーバが同じフォルダ構成で、 同名のファイルが全く同じように格納されていたら、 この2つのサーバで統一的にファイルの特定ができるでしょうか? できます!! それは、ファイルの絶対参照と同時に、 注目する(対象となる)WWWサーバ名を指定すれば良いのです。 「あれ?これはどこかで使ったことがあるぞ」と、思いませんか? そうです、これが、「URI」なのです。URIは、 インターネット上のリソース (ファイル) を特定する記述方法ですが、 実は、先週から説明してきた絶対参照の拡張版だったのです。 (ただし、URIは更に拡張されていて、http に代表されるリソースを取扱う手順も、 規定していますね。) URIの形式を思いだして下さい。 ![]() 実は、「サーバ部」が(WWW)サーバ名を表わし、 「パス部」が対象となるファイル (リソース) を絶対対参照で表記しているのです。 「/kiss/G/top.html」が、絶対参照表記であることは、 今の皆さんには理解できますよね。 URIは、Webブラウザのアドレスバーに直接書いたり、 HTMLの a要素のhref属性値としてリンクを張るのに利用しますね。 例えば、a要素のhref属性の値として、以下のように記述します。
<a href="http://www.kumamoto-u.ac.jp/kiss/G/top.html"> 熊大学生のページ </a>
ところで、a要素のhref属性の値として、以下のように記述することもできましたね。
<a href="./top.html"> 熊大学生のページ </a>
例えば、上のa要素が、 (絶対参照で)/kiss/G というフォルダにあるHTMLファイルに記述されているのであれば、 相対参照された「./top.html」というファイルは、 絶対参照表記では、「/kiss/G/top.html」となります。 その上更に、上記のa要素が書かれているHTMLファイルが、 wwww.kumamoto-u.ac.jp にあるとすると、 「./top.html」という表記と、 「http://www.kumamoto-u.ac.jp/kiss/G/top.html」は、 全く同じ物(ファイル、リソース)を表わしていることになります。 (ただし、取扱い(スキーム)は http で行なうことを前堤としています。) つまり、「./top.html」のように、 単にファイルを相対参照した表記も、 href属性値などのように、URI を書くべきところに記述すると、 URIと同じ働きをするのです。 そのため、 このように使われたファイルの相対参照表記を、 「相対URI」と呼びます。 それに対して、これまでURIと呼んできた スキーム、サーバ部、パス部からなる 完全なURIを「絶対URI」と呼ぶことがあります。 図を挿入する img要素でも、下記のようにファイルを指定してきましたが、 実はこれも相対URIなのです。
<img src="./animation.gif" alt="アニメーション">
ところで、これまで相対参照について、 「注目するフォルダを起点とした相対的位置による参照」のように説明してきました。 その際、注目するフォルダは、あるWWWサーバ上のフォルダとしてきました。 それでは、相対参照を用いる「相対URI」で指定するリソース (ファイル)が、 別のWWWサーバ上のものも可能でしょうか?
答は、「NO」です。 ただ、相対参照と絶対参照の節で述べたのと同様に、 相対URIで表記できるものは、 できる限り相対URI表記をするようして下さい。 そうすれば、HTMLファイルがPC上にあろうがが、WWWサーバにあろうが、 表記を変え無くてすみますし、 ディレクトリ構造がある程度変っても、URIの記述を変えなくてすむかもしれません。 |