全3060文字
PR

 アプリケーション層の通信プロトコルは、アプリケーション間でどんな手順でやりとりするかを定めたものだ。従ってアプリケーションごとにプロトコルを規定している。例えばファイルを転送する際にはFTPを使い、メールのやりとりにはSMTP、POPを使うといった具合だ。

 ここではHTTPを取り上げる。HTTPにはいくつかのバージョンがある。現在最も使われているのはHTTP/2である。最近では、新バージョンのHTTP/3が登場し、注目度は高い。

メッセージをやりとりする

 HTTPはWebブラウザーとWebサーバーの間でデータをやりとりする際に利用される。具体的には、WebブラウザーでWebサーバーにWebサイトを構成するファイル(HTMLや画像、CSSなどのファイル)を要求する。Webサーバーは要求に応えて該当するデータを送る。こうしたWebブラウザーからのリクエスト(要求)に対して、Webサーバーがレスポンス(応答)を返すのがHTTPの基本である。Webブラウザーが送る要求をリクエストメッセージ、Webサーバーが返す応答をレスポンスメッセージと呼ぶ(図4-1)。

図4-1●WebブラウザーとWebサーバーのやりとりに使われるHTTP
図4-1●WebブラウザーとWebサーバーのやりとりに使われるHTTP
クライアントのWebブラウザーがリクエストメッセージを送信し、それに応じたWebサーバーがレスポンスメッセージを返す。リクエストメッセージにはメソッドが含まれており、Webサーバーに実行させたいアクションを指定する。レスポンスメッセージにはレスポンスの意味を表す3桁のステータスコードが含まれる。
[画像のクリックで拡大表示]

 リクエストメッセージには指示の内容を示す「メソッド」やアクセス先、ホストなどの情報が含まれている。図4-1では分かりやすいようにテキストで記載したが、HTTP/2では通信量を抑えるためにバイナリー形式に圧縮されたデータを使う

 メソッドはWebサーバーに対する指示を表す。Webサイトの閲覧時に使われるメソッドはGETやPOSTだ。GETメソッドとPOSTメソッドの違いはWebブラウザーからWebサーバーにデータを送る際の送信方法にある。

 GETメソッドはデータをURLの一部に入れて送る。一方、POSTメソッドでは入力データをリクエストメッセージの本文として送る。GETやPOST以外には、Webサーバーのファイルを操作するメソッドもある。例えばファイルを更新する際に利用するPUTメソッドや、ファイルを削除する際に利用するDELETEメソッドなどだ。

 アクセス先にはWebサーバー内のファイルの位置を指定する。ホストはアクセス先をIPで指定するので一見不要そうだ。だが1台のサーバーで複数のドメインを運用する仮想ホストを実現するためHTTP/1.1で追加された。ホスト名でWebサイトを区別する。

 レスポンスメッセージにはステータスコードが含まれる(図4-2)。ステータスコードはリクエストメッセージで要求した操作の処理結果を示す3桁の数字である。最もよく見かけるのは「404」だろう。リンク切れなどで指定したファイルが存在しない場合に表示される。

図4-2●主なステータスコード
図4-2●主なステータスコード
200番台が成功、300番台がリダイレクト、400番台がクライアントエラー、500番台がサーバーエラーを表す。ステータスコードには処理中を表す100番台もあるがあまり使われない。
[画像のクリックで拡大表示]