[Edit][Create New]
[ IndexPage / ネットとプログラミング / web296 / No22.txt ]

No22.txt

今日はWebの基本プロトコルであるHTTPについて説明してみようと思います。

複数のコンピュータやプロセス(プログラム)がお互いに通信するための決まり
の事をプロトコルといいます。

例えば私が誰かと連絡を取りたいと思ったとします。この時に、相手とちゃん
と打ち合わせをしておかないと、私は携帯電話で電話をかけようとしているの
に、向こうは郵便受けの前にしゃがんで来ない手紙を待ち続けてる、という事
になりかねません。「連絡は電話で行いましょう」という事前の取り決め、こ
れがプロトコルです。あるいは、電話を掛けた時に、向こうがタガログ語でま
くしたてるかも知れません。こちらはタガログ語なんて分かりませんから、結
局声は聞けても要件は伝えられません。「連絡は日本語の標準語で行いましょ
う」これもプロトコルです。

ようするに、お互いに通信する際、それらが円滑に行くような統一された取り
決め全てをプロトコルと呼びます。

さて、Webでドキュメントをやりとりするには、HTTPというプロトコルを使い
ます。これは「HyperText Transfer Protocol」の略で、直訳すると「ハイパ
ーテキストを輸送するプロトコル」となります。ハイパーテキストというのは、
HTML文章のような、相互にリンクされたテキストの事ですね。そういえばHTML
も「HyperText Markup Language(ハイパーテキスト記述言語)」の略になって
います。

ところでインターネットで使われているプロトコルというのは数多くあります
が、HTTPはその中でも群を抜いて単純、簡単なものです。FTPがハイブリッド
カーならHTTPは大八車程度の仕組みしか持っていません(ちょっとオオゲサか)。
ではHTTPの仕組みをみてみましょう。

HTTPの通信は、基本的に「クライアント(ブラウザ)側のリクエスト(要請)」
「(Web)サーバー側のリザルト(返答)」の2段階のみで成り立っています。よう
するに、ブラウザが「おーい、あれくれ」と言って、Webサーバーが「あいよ」
と返す。これだけです。HTTPのリクエスト方法(Request Method)には、多くの
種類がありますが、普通使われているのは、GET POST HEADの3種類だけで、ド
キュメントを表示するだけならGETだけで十分です。

では、ブラウザがWebサーバーに送るリクエストを見てみましょう。telnetが
使える人は、ブラウザの代わりにtelnetを使ってWebサーバーの80番ポートに
接続してみましょう。

http://web296.com/index.html

なら、

telnet web296.com 80

です。接続が出来たら以下のように打ち込み改行を送ります。

GET /index.html 

これだけです。1番目はリクエストの種類。2番目が欲しいドキュメント。3番
目には本来プロトコルの名前が来ますが今回は省略しています。

すると、 http://web296.com/index.html の内容が画面に出てきたと思います。
これだけです。単純でしょう? 実際、Webへのアクセスのほとんどは、上記の
GETメソッドだと思います。

Webというと、見た目の派手さから複雑怪奇な仕様のもとに、煩雑な処理がな
されているように思われますが、実体はたったこれだけの事なのです。逆にい
うと、この単純さ、「こんなに単純なら俺にだって何かWeb関連のソフトが作れ
るぞ!」というお手軽さが受けて、あっという間にHTTPが広まったという部分も
否定できないでしょう。Ethernetの時も書きましたが、「単純明解さ」はプロ
トコルの普及に重要な役割を果たします。

「でも、ブラウザは画像とか音声とかJavaとかShockwaveとか色々表示できる
じゃないか!」

と思った人がいるかも知れません。しかし以上の仕組みだけで、画像や音声も
何もかも表示可能なのです。これについては次回解説するとしましょう。