永尾 幸夫/西山 健二 NTTデータ関西テクシス ソリューションマーケティンググループ テクニカルサポート担当

SMTP,POP:
電子メールで使われる2つのプロトコル

 前述したように,HTTPはWWWサーバーとWWWブラウザ間のデータ転送に使われる。

図7●HTMLはHTTPによって運ばれる
 読者の中には「WWWブラウザで使ってるのはHTML(Hyper Text Markup Language)ではないのか?」と思った方がいるかもしれない。確かにHTMLもWWWブラウザとWWWサーバー間でやり取りする上での約束事ではある。しかしHTMLはWWWブラウザの画面にどのようなフォントを出すか,どの部分に色をつけるか,どこに画像や表を表示するか,という記述方法を定義したものであり,データ転送の方式は定義されていない。つまりWWWブラウザからHTMLを要求したり,HTMLをWWWサーバーからWWWブラウザまで持ってくる役目のプロトコルが別に必要であり,それがHTTPなのである(図7[拡大表示])。

図8●リクエスト・メッセージとレスポンス・メッセージの例

要求して返答し,終了する

 HTTPは基本的に,WWWブラウザがWWWサーバーに対して要求(リクエスト・メッセージ)を送り,WWWサーバーがWWWブラウザに情報を返答(レスポンス・メッセージ)して終了する――という,とてもシンプルなプロトコルである。処理に必要なオーバーヘッドが少なく,シンプルなので難解な問題が発生することも少ない。

 図8[拡大表示]が,リクエスト・メッセージとレスポンス・メッセージの例である。なお,HTTPプロトコルは通常ポート番号80を使用する。

 リクエスト・メッセージは,リクエスト行,ヘッダー,エンティティ・ボディで構成する。リクエスト行には,WWWサーバーに対してどのような動作を要求するかを決めるための命令である「メソッド」(表4[拡大表示]),参照先を表す「URL(Uniform Resource Locator)」,HTTPのバージョンを示す「HTTPバージョン」を指定する*12

表5●主なHTTPヘッダー
 ヘッダーには,色々な情報が含まれる。後述するレスポンス・メッセージにもヘッダーがあるが,ヘッダーには,リクエスト・メッセージにしか存在しないリクエスト・ヘッダー,レスポンス・メッセージにしか存在しないレスポンス・ヘッダー,両方に存在する汎用ヘッダーとエンティティ・ヘッダーがある(表5[拡大表示])。リクエスト・メッセージのエンティティ・ボディには,WWWサーバーに対し情報を送信する(POSTメソッドを使用する)場合に,情報を格納する。

表6●HTTPにおけるサーバー応答コード
 レスポンス・メッセージは,レスポンス行,ヘッダー,エンティティ・ボディで構成する(図8)。レスポンス行にある「状態コード」はリクエストに対する応答の状態を示すもので,3けたのコードである(表6[拡大表示])。存在しないURLを指定すると「404 File Not Found」といったメッセージがWWWブラウザに表示されることがあるが,この404も応答コードである。ヘッダーは,リクエスト・メッセージと同様に色々な情報を含んでいる。最後のエンティティ・ボディに,HTMLなどのWWWサーバーからの情報が格納される。