3 Minutes NetWorking
No.70

3Minutes NetWorking

第70回HTTP(1) WWW

■ World Wide Web

インター博士

さて、ネット君。TFTPは置いておくとして、telnet、FTP、DNSと3つのプロトコルを扱ってきたわけだ。
もちろん、覚えているよな。

ネット助手

ネットワークの基本、リモートログインとファイル交換、そしてネットワークのインフラたる名前解決ですよね。

インター博士

うむうむ。もちろんこれら3つのプロトコルは、ネットワークを使用し、理解すると言う点で重要なプロトコルだったわけだが…。

ネット助手

わけだが?

インター博士

目立たない

ネット助手

む。

インター博士

インターネットってあれでしょ? ホームページ?」みたいなわけだ。

ネット助手

博士、その微妙な物まねなんだかなんなんだかよくわからない言い方はやめてください。

インター博士

まぁ、ともかくだ。インターネットでもっとも目立つのはやはりWWWなわけだ。

ネット助手

わーるどわいどなうぇぶ、ですね。
世界的な蜘蛛の巣。

インター博士

そう、よくご存知のWWWだ。さて、ネット君。ではこの「WWW」を明確に説明してくれたまえ。

ネット助手

ホームページを見ることができます。

インター博士

なるほど。明確だ。では、自宅で自分のハードディスクに保存したWebページを見るのもWWWなんだな?

ネット助手

う、う〜ん。そうなのかな…。

インター博士

まぁ、確かに「Webページを見る」がWWWと言えばそうなんだが、もうちょっと正確にいこう。
つまり、広域情報共有システムがWWWだ。

ネット助手

広域に情報を共有する、システム?

インター博士

そのまま読むな

ネット助手

はぅっ。

インター博士

情報共有システムといっても、FTPを使ってファイルを交換したり、telnetでリモートを操作して見ることもできる。WWWとは以下の3つの技術を使って、より手軽に情報を閲覧・公開する仕組みだ。

  • HTTP … HyperText Transfer Protocol
  • URI … Uniform Resource Identifier
  • HTML … HyperText MarkUp Language
ネット助手

3つの技術、より手軽に。

インター博士

うむ。この3つの技術にはそれぞれ役割がある。
まぁ、有名なものばかりだから、大体わかると思う。

  • HTTP … ハイパーテキスト(ファイル)を転送するためのプロトコル
  • URI … 情報(リソース)の位置を特定するための記述子
  • HTML … ハイパーテキスト記述言語
インター博士

つまり、WWWとは「URIによって指定された場所にあるHTMLによって記述されたハイパーテキストをHTTPによって転送することによって情報の共有を行うシステム」のことだ。

ネット助手

URIで場所を決定、HTMLによって作られた文書、HTTPによる転送…。
なるほど、現在のホームページって確かにそうですね。

インター博士

まぁ、実際はこのWWWによる情報共有システムが便利なので、色々な形で応用はされてはいるが、基本は、HTTP、URI、HTMLだ。
このWWWに一般的に使われるアプリケーションが、ブラウザなのは言うまでもないだろう?

ネット助手

InternetExplorerやNetscpe Navigator、Operaなどですよね。

インター博士

うむ。ブラウザについては話すと長いため、興味があるなら調べておきたまえ。
ともかく、クライアント側がブラウザ、サーバ側がWebサーバアプリケーション、という形になる。

WWWの構成

[Figure70-01:WWWの構成]

インター博士

このWebサーバアプリケーション・ブラウザ間での情報の閲覧・公開のシステムってことだな。

ネット助手

ふむふむ。

■ HTML

インター博士

さて、このWWWの3つの技術を説明しよう。
まず、HTML。説明不要だな、こんなんだ。

HyperText Markup Language

[Figure70-02:HyperText Markup Language]

インター博士

この「Roads to Node」はXHTMLだが、ハイパーテキスト記述言語には変わりない。見た目もそんなに変わらないしな。
HTMLをここで説明してもいいんだが…。

ネット助手

してください。

インター博士

そこらへんでタグ辞典でも買って来い

ネット助手

うわ。職場放棄ですか、博士?

インター博士

あ〜あ〜、わかったわかった。基本的なところだけ説明しよう。
ハイパーリンクという特徴を備えた、ネットワークによる共有に適した文書記述言語だ。

ネット助手

はいぱーりんく?

インター博士

通常の文章は1ページ目の1行目からず〜っと読んでいかなければならないわけだ。これに対しハイパーリンクを使うと、文書をすっ飛ばしたり、違う文書に飛んでいけたりする。

ネット助手

あぁ、ホームページのリンクのことですか。

インター博士

そうだ。通常のテキストに対し、このような文書をハイパーテキストという。これを記述できる言語がHTMLってことだな。

ネット助手

マークアップってなんですか?

インター博士

通常のテキストは、前も話したが、単に単語がならんでいるだけだ。まぁ、タブとか改行はできるがな。それに対し、「ここは見出し」「ここは文章」という文書の構造化を行う言語のことをマークアップ言語という。

ネット助手

タグ、でしたっけ? それを使うんですよね。

インター博士

<p>などだな。これで構造を記述するわけだ。
現在のインターネットで使われるHTML標準は HTML4.01になる。 ▼ link

ネット助手

あれ? そうなんですか? XHTMLは?

インター博士

XHTMLは次世代の標準と言われているのだが…。実際はどうなるのかわからん。
あぁ、そうだ言い忘れていた。WWWの標準化団体W3Cだ。 ▼ link

ネット助手

だぶりゅーすりーしー。

■ URI

インター博士

さて、WWWを形成する3つの技術。次はURIを説明する。

ネット助手

あの〜、博士?

インター博士

なんだね、ネット君。

ネット助手

URLってのとURIは違うんですか?
よく聞くのは、URLの方なんですけど。 ▼ link

インター博士

そうだな。実際WWW上では、URLという言葉の方が一般的だな。
ただ、URLはURIのサブセットだ。

ネット助手

さぶせっと?

インター博士

簡略形というか、一部というか。
URIと言った場合、URLを含むリソースの場所・モノを示す座標のことだ。

ネット助手

リソースの座標?
WWWの場合、リソースってHTMLファイル、ページですよね。

インター博士

そうだ。その座標だな。WWWの場合は、ページの場所を示す。
URIのサブセットには他にもモノを示すURNがある。

ネット助手

モノ?

インター博士

例えばだ、RFC文書がある。RFC2369にしよう。これの場所は「http://www.ietf.org/rfc/rfc2369.txt」だ。

ネット助手

はい。よく見るURLですよね。

インター博士

一方、存在するRFC2369文書を表すものとして「urn:ietf:rfc:2369」というURNを使う
これはRFC2369文書そのものだ。▼ link

ネット助手

う、う〜ん。

インター博士

あ〜、そうだな。他にも例えば、CompactHTMLで使われている、tel:123-45-6789のような電話番号を指し示したりだとか、リソースを指し示す識別子の統一書式がURIだ。

ネット助手

う、う〜ん。
そのURIの中で、よく使われているのが、その一部であるURL、ということですか?

インター博士

うむ。
そのURIの書式は以下のように決まっている。

URI記述

[Figure70-03:URI記述]

ネット助手

すきーむ?

インター博士

一般的には処理方式を表すものだ。
URNでは必ず「urn:」になる。URLの場合は使用するプロトコルを書くことが多い。

ネット助手

「http:」の場合、HTTPを使いますよってことですね。

インター博士

そうだ。
そして後ろのリソース情報はスキームによって書き方が異なる

■ HTTPでのURI

インター博士

HTTPでのURIの記述は正確にはこうなる。

  • http://ユーザ名:パスワード@Webサーバ:サーバポート番号/ファイルの場所
ネット助手

スキームがHTTP。HTTPを使いますよってことですよね。次が、ユーザ名とパスワード?
そんなの、今まで見たことないですよ?

インター博士

それは省略されているからだ。
通常、Webページは特に決められたユーザからしか見えない、という使い方はしない。なのでここは省略できる。

ネット助手

なるほど、省略ですか。
次が、サーバ? Webページのあるサーバですか?

インター博士

そうだ。通常はドメイン名を使うが、IPアドレスでもよい

サーバ名の記述

[Figure70-04:サーバ名の記述]

インター博士

上はドメイン名。下はIPアドレス。どちらでも同じ意味になる。

ネット助手

ドメイン名って結局はDNSでIPアドレスに変換されちゃいますものね。
結果的には同じってことですか。

インター博士

そういうことだ。サーバ名の後ろがポート番号。これも省略可能だ。
省略した場合、HTTPの標準ポート番号…、何番だったかな、ネット君?

ネット助手

80番でしたよね?

インター博士

うむ。

ネット助手

やりぃ。

インター博士

省略した場合、自動的に80番が入っているものとされる。

ポート番号の記述

[Figure70-05:ポート番号の記述]

インター博士

先ほど同様、上と下は同じ意味になる。
このポート番号の記述はそのポート番号(で待ち受けている)サーバアプリケーション宛という意味になるわけだ。

ネット助手

う〜んと、つまりwww5e.biglobe.ne.jpというサーバの80番ポートのアプリケーションって意味ですね。

インター博士

そういうことだな。レイヤ4のポート番号のところを忘れないように。
次に、スラッシュがあって、実際に要求するリソース(ファイル)の場所になるわけだな。

ファイル名の記述

[Figure70-06:ファイル名の記述]

インター博士

上の例の場合、www5e.biglobe.ne.jpというサーバの。「~aji」というディレクトリの「3min」というディレクトリの「70.html」というファイルという意味になる。

ネット助手

へ〜。
…でも博士?

ファイル名の省略

[Figure70-07:ファイル名の省略]

ネット助手

これ、ファイル名がありませんよ?

インター博士

ファイル名がない場合、受け取ったサーバが自動的にファイル名をくっつける。多くの場合、index.htmlかindex.htmなどをくっつける。
これはサーバで設定されたファイル名になるな。

IIS5.0の場合のデフォルトファイルの設定

[Figure70-08:IIS5.0の場合のデフォルトファイルの設定]

インター博士

MicrosoftのIISの場合、この画面の場所で設定されたファイル名が自動的に付加されるのだが…。

ネット助手

だが?

インター博士

省略された場合はいろいろややこしい挙動が起きる場合がある。
まとめるとこんな感じだ。

  1. サーバ名の後ろが省略
    • http://www.3min.co.jp/ … index.htmlなどを付加
    • http://www.3min.co.jp … http://www.3min.co.jp/とみなす。index.htmlなどを付加
  2. ファイルの場所の途中が省略
    • http://www.3min.co.jp/net/ … index.htmlなどを付加
    • http://www.3min.co.jp/net … netというファイルを探す。ない場合http://www.3min.co.jp/net/とみなす。
ネット助手

は〜。一番後ろのスラッシュって意味があるんですねぇ。

インター博士

うむ。特にファイルの場所の途中でスラッシュがない場合、ファイル名なのかディレクトリ名なのかわからない、もしかしたらまだ続きがあるのかな〜なんて思ってしまうわけだ。

ネット助手

なるほど。

インター博士

さて、今回はこれぐらいにしておこう。

ネット助手

あれ? 最後の1つ、HTTPは?

インター博士

それが次回からの内容だ。
ではまた次回。

ネット助手

いぇっさ〜。
3分間ネットワーキングでした〜♪

WWW
[World Wide Web]
「ダブリューダブリューダブリュー」
「ワールドワイドウェブ」
「ダブリュースリー」(はWWWCだけかな)
もしくは単に「ウェブ」。好き勝手な読み方でどうぞ。
ブラウザ
[Browser]
XHTML
[eXtensible HyperText Markup Language]
XML[eXtensible Markup Language]を元にHTMLを作り直したもの。
マークアップ言語
[Markup Language]
SGML[Standard Generalized Markup Language]が代表格。HTML、XMLはこれの拡張版。
W3C
[World Wide Web Consortium]
500以上の参加団体からなるWWWの標準化団体。
URL
[Uniform Resource Locator]
RFC1738で規定。
URI
URIはRFC2369で規定。
URN
[Uniform Resource Name]
URNを使う
詳しい違いは参考リンク参照のこと(英語ですけど)。
CompactHTML
i-mode端末用HTML。HTMLのサブセット。
IISの場合
Apacheの場合、設定ファイル(httpd.conf)の「DirectoryIndex」の項目で設定されます。
ネット助手ネット君の今日のポイント
  • WWWは広域情報共有システム。
    • URIで情報の場所を特定。
    • HTMLで情報を記述。
    • HTTPで情報を転送する。
  • HTMLはハイパーテキストを記述するマークアップ言語。
  • URIはリソースを指し示す識別子の統一書式。
    • URLはURIのサブセット。
    • 「スキーム:リソース情報」の形で記述する。

3 Minutes NetWorking No.70

管理人:aji-ssz(at)selene.is.dream.jp