1
|
- 2005年 9月 21日 第一回資料
- 担当 重定 如彦
|
2
|
- 本授業では、CGIについて解説する
(後半の山本先生はXMLを解説する予定)
- CGIの構築に必要なプログラミングやHTMLについては時間の都合上、必要最低限の説明しかしないので、興味のある方は各自勉強してください
- 参考文献
一週間でマスターするCGI[Windows XP対応版]
福島 靖浩 著、 毎日コミュニケーションズ
その他書籍やウェブページによる解説多数あり
|
3
|
- プロトコルとは?
- インターネットのプロトコル
- プロトコルの階層化
- ウェブページの表示までの流れ
- ウェブページの種類
|
4
|
- プロトコル(Protocol)とは、コンピュータ同士が通信を行う際に、具体的にどのようにして通信を行うかについての取り決めのこと
- プロトコルを決めておかなければ通信を行うことはできない
- コンピュータの世界だけではなく、我々の日常生活においても、人や物の間で何らかのやりとりを行う場合、基本的には何らかのプロトコルに従ってやりとりを行う
- 例えば、機械の説明書にはその機械を操作するための
プロトコルが記述されている
|
5
|
- 人間同士が意思の疎通を行う場合
- 意思の表現方法のプロトコル
声、文字、手話、点字、表情、ジェスチャー・・・
- 意思の転送手段のプロトコル
空気(音波)、光(視覚情報)、電話、手紙、電報、電子メール・・・
- 言語のプロトコル
日本語、英語、フランス語、ドイツ語、中国語・・・
お互いに理解できるプロトコルを使ってはじめて意思の疎通が可能となるまた、理解できたとしても、使うプロトコルを具体的に決めておかなければ
うまく意思の疎通ができない場合もある
例:文化が違うと同じジェスチャーが全く違う意味を持つ場合がある
|
6
|
- 自動販売機でジュースを買う場合
- 支払いのプロトコル
硬貨を投入する
- 商品の選択のプロトコル
展示されている商品に対応するボタンを押す
- 商品の受け取りのプロトコル
受け取り口から商品を取り出す
- その他のプロトコル
お釣りの受け取りや返却方法、売り切れ時の表示方法など
- これらのプロトコルを知らない人(自動販売機を知らない人)は
自動販売機でジュースを購入することはできない
また、同じジュースを買う場合でも、コンビニでジュースを買う場合は
上記とは全く別のプロトコルが使われる
|
7
|
- コンピュータの場合、以下のような人とコンピュータの間のやりとりの方法もプロトコルの一種と言えるだろう
- データの入力方法
キーボード、マウス、スキャナ、タッチペン、ジョイスティック・・・
- データの出力方法
ディスプレイ、スピーカ、プリンタ・・・
- しかし、コンピュータ用語としてのプロトコルは、一般的には
ネットワークを使ってコンピュータ同士が通信を行う為の取り決め
のことを指し、この授業でも以後はプロトコルをこの意味で使用する
|
8
|
- コンピュータのプロトコルには様々な種類があり、それぞれの役割の
レベルに応じて階層化して分類することができる
- 通信回線のプロトコル
ケーブル、光ファイバー、無線などで使われる部品などを規定
- データを目的のコンピュータに届けるためのプロトコル
インターネットではTCP/IP、UDPが主に使われている
- ネットワークを使って様々なサービスを提供するプロトコル
ウェブ(WWW)、電子メール、ファイル転送・・・
- ここでいうレベルとは役割の細かさのこと
レベルが低いほど、より細かい役割を扱う
ここでは3つのレベルを紹介しているが、実際にはプロトコルをもっと細かく
7段階に分類するOSI階層モデルと呼ばれるものが定められている
|
9
|
- プロトコルを階層化することで、それぞれのプロトコルは自分より一つ
レベルの低いプロトコルの使い方を知っていればそれより下のレベルのプロトコルのことを一切知らなくても通信を行うことができるようになる
- 以下は、日常で行われている階層化の例
- 会社の社員は一般に役職によってレベル分けされているが、上位の
役職の社員は自分の一つ下の役職の社員に指示をだすことで、
自分より下の役職の社員全体に指示を与えることができる
|
10
|
- 他にも日常の様々な場面で階層化が行われている
- 車の運転
ハンドルやブレーキなどの運転に関する操作方法を学ぶだけで、
車のエンジンやブレーキなど、車の動作の仕組みのことを
一切知らなくても車を運転することができる
- 家電製品
電話、テレビ、冷蔵庫、電子レンジ、テレビゲームなど、ほとんどの
家電製品は使い方さえ知っていれば、機械の具体的な仕組みを
一切知らなくても使うことができる
- このように、階層化を行うことで我々は様々なものを、
- 詳細な仕組みについて知らなくとも利用することができる
|
11
|
- TCP/IP(「てぃーしーあいぴー」と読む)
- インターネットで、あるコンピュータからあるコンピュータに
データを送り届ける為のプロトコル。日常生活でいうと、
郵便局を使って手紙を送る仕組みに似ている
- TCP/IPではインターネットにおけるコンピュータの住所を表す
IPアドレスを指定して目的のデータを転送する
- 郵便の場合、建物の住所を指定して手紙を送る
- TCP/IPも郵便局も、送るデータの内容については一切関知しない
(中身に関しては、より上位のプロトコルが処理を行う)
|
12
|
- HTTP(HyperText Transfer Protocol)
その名の通り、ウェブページなどの記述言語である
ハイパーテキストデータ(HTML)を転送する為のプロトコル
- ウェブページを表示するウェブブラウザ(HTTPではユーザエージェントと
呼ぶ)と、ウェブページを管理するウェブサーバと呼ばれる2つの
コンピュータの間でデータの転送を行う
- データの転送は一つ下のレベルのプロトコルであるTCP/IPを使う
- HTTPでは主に、ウェブブラウザからウェブサーバにどのような
要求データを送ればよいか、そしてウェブサーバがその要求に対して
どのような返答データを送り返すかについて規定されている
|
13
|
- TCP/IPとHTTPは郵便局と葉書を使った通信販売の関係に似ている
|
14
|
|
15
|
|
16
|
|
17
|
|
18
|
|
19
|
|
20
|
|
21
|
|
22
|
|
23
|
- 通常のウェブページ
- ウェブサーバ内に、ウェブページのデータが記述してあるファイルをそのまま保存する
- ウェブページのファイルを変更しない限り、いつ、誰が
そのページを表示してもまったく同じ内容が表示される
- ウェブページの表示までの流れは、先ほど説明した
ウェブページ表示までの流れそのもの
- 一般的にURLの拡張子は .html(または.htm) となる
|
24
|
- CGI(Common Gateway Interface)
- ウェブサーバ内のファイルには、ウェブページの内容そのものではなく、プログラムを保存する
- ウェブサーバはHTTPの要求メッセージを受け取ると、
指定されたファイルに記述されているプログラムを実行し、その結果を返信メッセージとしてブラウザに送り返す
- プログラムはHTML文章を作成する
- 掲示板やアクセスカウンタなどのように、ユーザの操作
などで毎回表示内容が変化するようなページを作成可能
- 一般的にはファイルの拡張子は .cgi となる
|
25
|
- CGIの動作例
- アクセスした時間によって表示する内容を変えるCGI(Time.cgi)
|
26
|
- ウェブブラウザ側で実行するプログラム
代表的なものにJavaScriptがある
- HTML文章の中にプログラムを記述する
- CGIと異なり、プログラムはウェブブラウザ側で実行する
- CGIは、ウェブサーバ側で実行されるため、CGIを実行する為には
毎回ウェブサーバに接続する必要がある
一方、Javascriptの場合、一回ウェブページをサーバから転送し
さえすれば、ウェブサーバに接続することなく何度でもプログラムを
実行することができる
- CGIと組み合わせる(CGIプログラムがJavaScriptが記述されているHTML文章を作成する)ことも可能。
従って、特定の拡張子を持つわけではない
- マウスを上に乗せると絵が変わるボタンなどで使われる
|
27
|
- CGIの特徴(1)
掲示板のように、不特定多数の人が共通のデータを利用する
ような場合、CGIでなければ実現できない
|
28
|
- CGIの特徴(2)
JavaScriptのような、ウェブブラウザ側で実行する
プログラムは、セキュリティなどの理由から一般的に
自分のコンピュータの中のデータしか扱えない
自分のコンピュータ内のデータを他のコンピュータのユーザと共有できないため、アクセスカウンタや掲示板はつくれない
一方、CGIは、ウェブサーバ上でプログラムを実行するため、処理の重いプログラムや、非常に多くの人が短時間に
アクセスするようなCGIを作成してしまうと、ウェブサーバに大きな負担をかけてしまう
|
29
|
- プラグイン(Plug-in)によるブラウザの機能の拡張
プラグインと呼ばれる拡張プログラムをインスールすることによって、ブラウザに新しい機能を追加することができる
- ウェブブラザは基本的にはHTMLを表示する為のプログラムであるが、プラグインによって、それ以外のデータも表示が可能になる
- 有名なものにFlashがある。FlashはJavascriptと同様に、ウェブブラウザ側でプログラムされるプログラム
- その他
他にもHTMLに記述されたコマンドをウェブサーバで実行
するSSI(Server Side Include)と呼ばれる技術がある
SSIは主にアクセスカウンタやアクセス集計などで使われる
|