目次 | 索引 |
---|---|
これまでの授業では、HTMLについて学び、ファイルとディレクトリについて理解を深めました。 残りの時間で、ネットワークの仕組み、特に「なぜホームページが見られるのか」について説明します。 ネットワークの仕組みに詳しくなったからといって、高度なホームページが作成できるわけではありません。 「ホームページが見られない」といったトラブルに対処するときや、ホームページ関連のシステム管理に関わるようになったとき、ネットワークに関する知識が重要になるのです。
インターネットを構成するコンピュータには、固有の番号が割り当てられています。 これを、 IPアドレス ( IP address )とよびます。 ここでIPとは、 インターネットプロトコル ( Internet Protocol )の略です。 プロトコルという用語は、通信規約という意味で使われています。 IPアドレスとは、インターネットの通信規約に基づく、コンピュータを区別する番号だと言えます。 インターネットでは、IPアドレスの重複は許されません。
例えば、東京女子大学のWWWサーバのコンピュータのIPアドレスは、
202.11.169.5
です。 IPアドレスの書式は、0から255までの範囲の数をドット(.)で区切って4つ書き並べたものです。 ビットの概念を知っていれば、0から255までの数は8ビットで表されることに気づくと思います。 IPアドレスは32ビットで表されます。 前述のIPアドレスを2進数で表すと、
11001010 00001011 10101001 00000101
となります。
現在、インターネットを構成するコンピュータは日を追って増えています。 新しいコンピュータには、まだ使われていないIPアドレスを割り当てる必要があります。
IPアドレスの重複を避けるため、IPアドレスの割り当てを行っている管理組織があります。 ただし、この管理組織は一台一台のコンピュータにIPアドレスを割り当てているわけではありません。 この管理組織は、会社、学校、プロバイダなど、インターネットを構成する組織(ネットワーク)ごとに、まだ使われていないIPアドレスの範囲を割り当てています。 そしてIPアドレスの範囲をもらった組織は、自分の組織のコンピュータに、自分の組織の判断で、その範囲からIPアドレスを順次割り当てます。
大きな会社などでは、管理組織からもらったIPアドレスの範囲を細分して部 に割り当て、各部はさらに細分して課に割り当てるといったことも行われています。 このようにして、IPアドレスが重複しないようにしています。
IPアドレスの範囲指定は、例えば32ビットの最初の24ビットは決められていて、残りの8ビットは組織に任されるといった、IPアドレスの2進表現に基づいて行われます。 仮に東京女子大学がこのように指定されたとしますと、学内では
11001010 00001011 10101001 00000000
から
11001010 00001011 10101001 11111111
まで、すなわち202.11.169.0から202.11.169.255までの256個のIPアドレスが使えるということです。 (範囲の両端には特別な意味がありますので、実際は254個です。)
ネットマスク ( netmask )とは、IPアドレスの32ビットのうち、どのビットが固定され、どのビットが任意なのかを表す番号です。 上記の例ですと、最初の24ビットが固定(1)、残りの8ビットが任意(0)ですので、
11111111 11111111 11111111 00000000
すなわち255.255.255.0となります。
インターネットを構成するコンピュータには、IPアドレスという固有番号がついていることを知りました。 しかし、IPアドレスは人間にとっては覚えにくいものです。 できれば、コンピュータに名前をつけ、その名前でコンピュータを指定したいところです。 このためには、次の問題を解決する必要があります。
前者はドメインという概念によって、後者はDNSという仕組みによって実現されています。 (DNSについては次回説明します。)
ドメイン ( domain )とは、一言で言えばコンピュータの集まりです。 ドメインは、階層構造を持ち、その構造は木で表されます。 ドメインには、階層構造を反映した名前(ドメイン名)がつきます。 ドメイン名の表現は、右から左に行くほど特定的になります。
例えば、usyd.edu.auはドメイン名です。 これは、オーストラリア(au)の、教育機関(edu)の、シドニー大学(usyd)を表します。 シドニー大学のWWWサーバのコンピュータにwwwと名前をつけた場合、このコンピュータはwww.usyd.edu.auという名前で指定できます。 なお、www.usyd.edu.auはコンピュータの名前ですが、これもドメイン名と考えます。 つまり、コンピュータを一つ集めたドメインと言うわけです。
| +---+----+-+---+---+ | | | | | com edu ... au jp ... | +---+---+ | | edu ... | +---+----+--------+ | | | usyd utas ... | | +--+--+ +--+--+ | | | | | | www ... www ...
基本的に、各ドメインにはドメイン名の管理組織が存在します。 管理組織は、申請に応じて新しいドメイン名の設置を認めます。 しかし、より下のドメインのことは、そこの管理組織に管理を委任します。 例えば、edu.auドメインの管理組織は、オーストラリアに大学が新設されたときには、申請されたドメイン名をedu.auの下に設置します。 しかし、シドニー大学に学科が新設さたときは、何もせずusyd.edu.auドメインの管理組織に管理をまかせます。
この、階層構造を反映したドメイン名と、委任の仕組みによって、インターネットで一意となる名前が簡単に用意できます。 例えば、オーストラリアのタスマニア大学(utas.edu.au)で、あるコンピュータにwwwという名前をつけることは、タスマニア大学のみの判断でできます。 そして、このコンピュータの名前はwww.utas.edu.auなので、シドニー大学のコンピュータと名前が衝突することはないわけです。
ドメイン名の具体的な割り当ては次の通りです。 まず、木の一番上のドメイン(トップレベルドメインとよばれます)には、主に以下のようなものがあります。
トップレベルドメインには、この他に国別のドメインがあります。 日本の場合はjpです。 jpドメインの下には、主に以下のようなドメインがあります。
jpドメインの下には、この他に都道府県を表すドメインや、一般的な名前(ブランドなど)のドメインがあります。
URL (Uniform Resource Locator)とは、主にインターネットで利用できる情報サービスの、アクセス方式や設置箇所を表す文字列です。 例えば、検索エンジン「ヤフー・ジャパン」を利用するときは、Netscapeの「場所:」入力欄に
http://www.yahoo.co.jp/
と入力して、ヤフーのホームページを表示します。 この文字列がURLの一例です。
URLは、Netscapeの「場所:」入力欄に入力する他に、HTMLドキュメントに書いて、リンク先を指定したり、イメージファイルの所在を示したりするのに使われます。 具体的には、次の部分です。 これまでファイル名を書いていたところです。
<img src="
URL
">
<a href="
URL
">
〜
</a>
<body background="
URL
">
〜
</body>
background-image: url(
URL
)
<frame src="
URL
">
もしかしたら、URIという用語を聞いたことがあるかもしれません。 URI (Uniform Resource Identifier)は、URLの拡張概念です。 この授業では、両者の差を意識する必要はありませんので、URLをURIと読み替えてもかまいません。
URLには、 絶対URL ( absolute URL )と 相対URL ( relative URL )があります。 絶対URLは、情報サービスのアクセス方式や設置箇所を完全に指定します。 一方、相対URLは、それらを部分的に指定します。 相対URLが書かれたところには、基準となる絶対URLがあり、基準のURLと相対URLの両者から完全な指定がなされます。
絶対URLの書式は次の通りです。
scheme : scheme-specific-part
ここで、 scheme はアクセス方式を表す文字列です。 アクセス方式のうち重要なものは次の通りです。
scheme-specific-part はアクセス方式によって様々です。
file方式の場合は、file:(正式にはfile://)に続けてファイルの絶対パス名を書いて、ローカルファイルを指定します。 例えば、パス名が
/home/b00a/b00a001/schedule.html
であるファイルを作成した場合、Netscapeの「場所:」入力欄に
file:/home/b00a/b00a001/schedule.html
と入力しますと、そのファイルの内容が表示されます。 準備中のホームページや公開しないホームページは、この方法で開くとよいでしょう。
mailto方式の場合は、mailto:に続けてメールアドレスを書きます。 例えば、メールアドレスがb00a001@twcu.ac.jpである場合、HTMLドキュメントに
... <a href="mailto:b00a001@twcu.ac.jp"> メールはこちらまで</a> ...
と書きますと、ブラウザは「メールはこちらまで」の部分を始点アンカーとして表示します。 そして、もしそのブラウザにメール送信機能があれば、その部分をクリックしますとメール送信用のウィンドウが開きます。
http方式の場合、URLの書式は次のようになります。 (もう少し複雑な形もあります。)
http:// host path
ここで、 host はWWWサーバのコンピュータの名前、 path はファイルの絶対パス名です。 ただし、ファイルの絶対パス名と言っても、WWWサーバのコンピュータにおける絶対パス名とは少し異なります。 例えば、Netscapeの「場所:」入力欄に
http://www.twcu.ac.jp/cis/index.html
と入力しますと、情報処理センターのホームページが表示されます。 このURLは、コンピュータwww.twcu.ac.jpで稼働しているWWWサーバを指定しています。 しかし、指定しているファイルは、/cis/index.htmlではありません。
WWWサーバは、すべてのファイルを公開するのではなく、あるディレクトリ(ドキュメントルートとよばれます)を定め、その下の部分のみを公開するようにしています。 そして、http方式で絶対パス名が指定されたときには、ドキュメントルートの下になるように絶対パス名が構成されます。 仮に、このWWWサーバのドキュメントルートが/var/lib/httpd/htdocsと設定されているとします。 すると、このURLはファイル
/var/lib/httpd/htdocs/cis/index.html
を指定していることになります。
この授業の演習で、例えば
/home/b00a/b00a001/WWW-local/ip2a/ex1.html
にHTMLファイルを作成したとき、Netscapeの「場所:」入力欄に
http://www-local.twcu.ac.jp/~b00a001/ip2a/ex1.html
と入力してもホームページが表示できました。 ここでも同様の仕組みが働いています。
WWWサーバは、各々のユーザに対しても、ホームディレクトリの下のすべての部分を公開するのではなく、ユーザごとにドキュメントルートを定め、その下の部分のみを公開するようにしています。 そして、URL
http:// host /~ user / path
が指定されたときには、ドキュメントルートの下になるように絶対パス名が構成されます。 コンピュータwww-local.twcu.ac.jpのWWWサーバでは、WWW-localというディレクトリがそれです。 したがって、URL
http://www-local.twcu.ac.jp/~b00a001/ip2a/ex1.html
は、ファイル
/home/b00a/b00a001/WWW-local/ip2a/ex1.html
を指定していることになるのです。
file方式やhttp方式のURLでは、ファイルの絶対パス名の代わりにディレクトリの絶対パス名が書けます。 このようなURLが指定された場合、ブラウザの反応はWWWサーバの設定に依存しますが、たいていは次のいずれかです。
例えば、Netscapeの「場所:」入力欄に
http://www.twcu.ac.jp/unofficial/
と入力しますと、東京女子大学の非公式情報のホームページが表示されます。 このURLは、コンピュータwww.twcu.ac.jpのファイル
/var/lib/httpd/htdocs/unofficial/index.html
を指定しているのです。 (ドキュメントルートが/var/lib/httpd/htdocsの場合。)
絶対URLとは、アクセス方式と設置箇所を完全に指定する文字列でした。 相対URLとは、これらを部分的に指定する文字列です。 相対URLは、主にHTMLドキュメントで用いられ、そのHTMLファイルが基準になります。 基準となるHTMLファイルを指定する絶対URLを、 基準URL ( base URL )とよびます。 相対URLが指定するものは、この相対URLと基準URLから決定されます。 この決定手続きを、相対URLの解決といいます。
例として、基準URLが
http://www.fiction.co.jp/people/1999/list.html
であるとしまして、相対URLがどのように解決されるかを説明します。
基準URL http://www.fiction.co.jp/people/1999/list.html 相対URL top.html → http://www.fiction.co.jp/people/1999/top.html
ファイル名は相対URLの一種です。 この場合、基準URLの最後のファイル名を取り除き、相対URLのファイル名を付け加えた文字列に解決されます。 すなわち、
http://www.fiction.co.jp/people/1999/list.html
で指定されたHTMLファイルのドキュメントに、
<a href="top.html">
〜</a>
という始点アンカーがあれば、そこをクリックしますと
http://www.fiction.co.jp/people/1999/top.html
の内容が表示されます。
基準URL http://www.fiction.co.jp/people/1999/list.html 相対URL konishi/intro.html → http://www.fiction.co.jp/people/1999/konishi/intro.html
ファイルの相対パス名も相対URLの一種です。 この場合も、基準URLの最後のファイル名を取り除き、相対URLの相対パス名を付け加えた文字列に解決されます。
基準URL http://www.fiction.co.jp/people/1999/list.html 相対URL ../1998/list.html → http://www.fiction.co.jp/people/1998/list.html
相対URLでは、一つ上のディレクトリを指定することもできます。 ただし、http方式の場合、ドキュメントルートより上は指定できません。
基準URL http://www.fiction.co.jp/people/1999/list.html 相対URL /about/detail.html → http://www.fiction.co.jp/about/detail.html
ファイルの絶対パス名も相対URLの一種です。 この場合は、基準URLの絶対パス名の部分を取り除き、相対URLの絶対パス名を付け加えた文字列に解決されます。
基準URL http://www.fiction.co.jp/people/1999/list.html 相対URL file:/home/staff/konishi/test.html → file:/home/staff/konishi/test.html
HTMLドキュメントに絶対URLを書いた場合は、基準URLに関わらず、その絶対URLに解決されます。
<base>
タグを用いますと、HTMLファイルの所在に関わらず、基準URLを明示的に指定できます。
書式は、
<base href="
URL
">
です。
このタグに終了タグはありません。
また、このタグは
<head>
〜
</head>
の中に書きます。
例えば、
<html> <head> <title>Image file collection</title> <base href="http://www.fiction.co.jp/img/list.html"> </head> <body> <h1>イメージファイルコレクション</h1> <img src="pic01.jpeg" alt="pic01"> <img src="pic02.jpeg" alt="pic02"> ... </body> </html>
と書きますと、このHTMLファイルがどこにあったとしましても、イメージファイル
が指定されることになります。
ホームページが大規模になりますと、一つのディレクトリにすべてのファイルを置いたのでは、管理が難しくなります。 階層的ディレクトリを利用して、ファイルを分類、整理するべきです。 しかし、これはそれほど単純な作業ではありません。 きちんとした方針を定めておかないと、ファイルが増えるにつれて、どこに何があるのか分からなくなってしまいます。
有用な方針のひとつに、「表現対象に階層構造があれば、それをディレクトリの構造に反映させる。」があげられます。 この方針に従ったホームページの作成例を、以下に示します。
ここで、「東京都ガイド」というホームページの作成について考えます。 これは、都内の観光地を紹介するもので、紹介する観光地は順次増やしていく予定とします。 最初の観光地を東京女子大学とし、次のようにホームページを作成したとします。
この程度でしたら、階層的ディレクトリを利用しなくても大丈夫です。 しかし、観光地を増やしていくにつれて、ディレクトリ ip2a には、市区町村のHTMLファイル、観光地のHTMLファイル、そして練習用のHTMLファイル(ex1.html など)が混在することになり、だんだんファイルが探しにくくなることが予想されます。
そこで、「都道府県」→「市区町村」→「観光地」という階層構造を利用して、次のようにファイルを整理することにします。
: | ip2a | +-------------+-------------+ | | | ex1.html ex1.html~ tokyo | +-------------+ | | suginami tokyo.html | +-------------+ | | suginami.html twcu | + | twcu.html
端末エミュレータを用いてこれらのディレクトリを作成するは、次のようにします。
b00a001@Ampere:~% cd WWW-local b00a001@Ampere:~/WWW-local% cd ip2a b00a001@Ampere:~/WWW-local/ip2a% mkdir tokyo b00a001@Ampere:~/WWW-local/ip2a% cd tokyo b00a001@Ampere:~/WWW-local/ip2a/tokyo% mkdir suginami b00a001@Ampere:~/WWW-local/ip2a/tokyo% cd suginami b00a001@Ampere:~/WWW-local/ip2a/tokyo/suginami% mkdir twcu b00a001@Ampere:~/WWW-local/ip2a/tokyo/suginami%
HTMLドキュメントを書く場合、リンク
に注意する必要があります。 ディレクトリの構造
: | ip2a | +-------------+-------------+ | | | ex1.html ex1.html~ tokyo | +-------------+ | | suginami tokyo.html | +-------------+ | | suginami.html twcu | + | twcu.html
から相対URLを求めますと、
となりますので、HTMLファイルは次のようになります。
<h1>東京都ガイド</h1> <p> 東京都のお勧めスポットは <a href="suginami/suginami.html">杉並区</a> です。 </p>
<h1>杉並区ガイド</h1> <p> 杉並区は <a href="../tokyo.html">東京都</a> にあります。 杉並区のお勧めスポットは <a href="twcu/twcu.html">東京女子大学</a> です。 </p>
<h1>東京女子大学ガイド</h1> <p> 東京女子大学は <a href="../suginami.html">杉並区</a> にあります。 </p>
これで、ファイルが増えても大丈夫になりました。 例えば、東京女子大学の写真を撮って twcu.jpg というファイルにしたならば、それをディレクトリ twcu の中に置きます。 観光地を増やすには、杉並区内ならばディレクトリ suginami の中に対応するディレクトリを作成します。 杉並区外ならば、いったんその市区町村のディレクトリを作成し、そしてその中に対応するディレクトリを作成します。
階層構造を持つホームページを作成してください。
以下の例を参考にして、スポーツの「リーグ」→「チーム」→「選手」、海外旅行の「国」→「都市」→「観光地」などの階層構造を考え、その構造を反映したディレクトリを作成し、それぞれのディレクトリにHTMLファイルを置いてください。
用意するHTMLファイルは3個です。
また、一つ上の階層と一つ下の階層にリンクを張ってください。
href
属性の値は、絶対URLではなく相対URLとします。
今日の演習10に従ってホームページを作成し、そのファイル名をkonishi@twcu.ac.jpあてにメールで報告してください。 メールには、学生番号、氏名、科目名、授業の日付け(6/12)を明記してください。