ウェブとクライアント/サーバ
[教科書8.2]
- ウェブ: インターネット上の相互にリンクされたページの総体。
ネットワークや情報の表現など様々なものが組み合わさってウェブが実現されている。
- ページ: ウェブのなかで、リンクで結び付けられた要素
- リンク: ウェブのなかで、ページを結びつける要素
インターネットのサービスは、クライアント/サーバで実現されているものが多い。
- サーバ: もっぱらサービスを提供するプログラム/コンピュータ。クライアントからの要求に対して応答する。
- クライアント: もっぱらサービスを要求するプログラム/コンピュータ。サーバに対して要求を送り、応答を利用する。
WinnyででてきたP2Pはクライアント/サーバでないサービスの提供形態である。
一般にサーバはクライアントからのサービス要求の記録(ログ)を残している。
例えば、ユーザ情報発信用WWWサーバのログなど。
ログの内容は、例えば「アクセス元のIPアドレス、日付、コマンド、結果(200が成功)、クライアントのブラウザの種類、元のURL」など。
(アクセス=読んだり書いたりすること)
授業のページのログをAnalogというツールを使って解析すると
レポートのようになる。
同様にユーザ情報発信用WWWサーバのログを解析すると
レポートとなる。
アクセス元に応じた情報を返してもらうために、ブラウザはいろいろな情報をウェブサーバに送っている。
http://user.ecc.u-tokyo.ac.jp/~yamaguch/cgi-bin/environment-example2.cgiにアクセスしてみよ。
HTTP_REFERERやREMOTE_ADDRがどのような意味か想像してみよ。
サーバではそれらの情報から何ができるか考えてみよ。
ウェブの場合に、クライアントの要求にサーバが応答する具体的な手順は以下のようになる。
- クライアントが、URL(http://user.ecc.u-tokyo.ac.jp/~g99999/index.html)を
httpと
user.ecc.u-tokyo.ac.jpと
/~g99999/index.html
に分解する。
- クライアントが、ホスト名(user.ecc.u-tokyo.ac.jp)のコンピュータに接続し、通信路を確立する。
- その通信路を通してクライアントがhttpプロトコル(通信規約)でファイル(/~g99999/index.html)を要求する。(この要求はサーバに届く)
- サーバは要求されたファイルの内容をその通信路を通して送り返す。(これはクライアントに届く)
- サーバが通信路を切断する。
- クライアントは受け取ったファイルを表示する(内容を解釈してその指示に従って描画する)。
実験してみよう。
URL
http://user.ecc.u-tokyo.ac.jp/~yamaguch/index.html
にアクセスしてみる。(アクセス=読んだり書いたりすること)
-
ターミナル
を開く。(参考: コマンド入力)
- ターミナルで「telnet user.ecc.u-tokyo.ac.jp 80」を入力する。(最後に
を押す。以下同様)Connected to...と表示されたらOK。
サーバと通信路が確立した。
- ターミナルで「GET /~yamaguch/index.html http/1.0」と入力する。通常の
の後にもう一度
を押す。
「HTTP/1.1 200 OK...」など結果の情報が数行表示されて、空行が続いた後、index.htmlの内容が表示され、接続が自動的に切れる。
(httpプロトコルという通信規約)
- ファイルindex.htmlの内容はHTMLという言語の形式で書いてある。ブラウザはそれを解釈して表示している。
ブラウザで
http://user.ecc.u-tokyo.ac.jp/~yamaguch/index.html
を開いてindex.htmlと見て比べてみよう。HTMLというのがどのようなものか感じがつかめるであろう。
上でやったようにターミナルからtelnetで授業のページにアクセスしてみよ。
実験で分かること
- httpの部分を間違えると、ブラウザがプロトコル(通信規約)を知らないというエラーとなる。
- user.ecc.u-tokyo.ac.jpの部分を間違えると、サーバが見つからないというエラーとなる。
- /~yamaguch/index.htmlの部分を間違えると、サーバからファイルが見つからないという応答がある。
実験で出てきたいろいろな要素
- コンピュータはホスト名というもので指定する。→インターネットの仕組みで説明する。
- コンピュータとは「telnet ... 80」により通信路を設定した。80はポート番号というものである。→インターネットの仕組みで説明する。
- ウェブのアクセスは通信路を通してhttpプロトコル(GET...などの)で行う。→インターネットの仕組みで説明する。
GETの代わりにPOSTを使うとサーバに情報を送ることもできる。[教科書196-197]
- ウェブの内容はHTMLという形式で書いてある。→Safariで「表示」→「ソースを表示」とするとそのページのHTMLが表示される。[教科書196-197]
- コンピュータのなかのファイルは「/~yamaguch/index.html」のような形式で指定する。→
ファイルの指定方法を参照。[教科書85ページの図4.19]
WWWと情報発信に従って自分のウェブページを作成してみよ。
情報教育棟のiMac300台によるクラスタ
Googleのサーバの数を調べてみよ。「Google server numbers」などのキーワードを使う。
yamaguch@mail.ecc.u-tokyo.ac.jp Copyright 2011 Kazunori Yamaguchi 山口和紀@東京大学総合文化研究科