【HTTPの機能について】

 このHPはHTTPの機能(リクエスト・レスポンス、メッセージ、転送フォーマット)についてまとめたものです。



1-1 HTTPリクエスト・HTTPレスポンス

WebブラウザとWebサーバとの間で、データのやり取りの方法を決めたのが、「HTTPプロトコル」で、Webブラウザの「HTTPリクエスト」と、Webサーバの「HTTPレスポンス」で成り立つ「クライアント・サーバ」型のプロトコル。
要求された内容の文書を探して処理するためには、、Webサーバーのソフトウェアが必要。






1-2 HTTPメッセージ

HTTPでやり取りする情報の事を「HTTPメッセージ」という。
HTTPメッセージには、
「リクエストメッセージ」と、「レスポンスメッセージ」の2種類ある。

どちらのメッセージも、


■HTTPメッセージの種類を表す「スタートライン」
■制御情報が複数行に渡って記述されている「メッセージヘッダ」
■アプリケーションデータの本文を表す「メッセージボディ」

3つで構成されている。

また、
メッセージヘッダとメッセージボディの間には、境界線を示す空行の改行コード(/r/n)が入る。










1-3 HTTPプロトコルの転送フォーマット

HTTPプロトコルで使用する転送時のフォーマットは、人間が可読なテキスト形式になっている。
すなわち、
コマンドベースでの転送になる。
画像情報等、バイナリ形式のデータも必要に応じて転送される。





■リクエストメッセージのフォーマット

リクエストメッセージは、1行の「リクエストライン」、複数のHTTPヘッダーで構成されている「メッセージヘッダ」、「メッセージボディ」の3つで構成されている。





リクエストラインは、サーバーに対して
どの様な処理をして欲しいかというリクエストの要求内容を記述している。
リクエストラインは、以下のように構成されている。


[メソッド リクエストURI HTTPバージョン CRLF(改行コード)]








◆メソッド
メソッドとは、クライアントがサーバに対して要求する動作の種類を表している。
メソッドには、主に
下記の種類がある。









◆リクエストURI
リクエストURIとは、サーバーがインターネット上でどこにあるか、ファイル名、パラメータ等を識別するために使用する文字列。
Webで用いられるURLは、大きく「スキーム名」、「ホスト名」、「ポート番号」、「ファイルパス」等で構成される。
また、「URI」と「URL」は同じものではない。「URI」はより広い概念を表すもので、その中に
「URL」と「URN」の両方の意味を含んでいる。
















■レスポンスメッセージのフォーマット

レスポンスメッセージは、1行の「ステータスライン」、複数のHTTPヘッダーで構成されている「メッセージヘッダ」、「メッセージボディ」の3つで構成されている。






「ステータスライン」は、Webブラウザに対して、
サーバー内での処理結果を伝える。
ステータスラインは、以下のように構成されている。


[HTTPバージョン ステータスコード リーズンフレーズ CRLF(改行コード)]









◆ステータスコード
HTTPレスポンス内には、HTTPリクエストに対するサーバー内での処理結果が含まれている。
それが
「ステータスコード」。
ステータスコードは、3桁の数字からなり、処理内容によって100番台〜500番台までの5つに分類されている。

「ステータスコード」と「リーズンフレーズ」は
一意に紐づいている。
例えば、Webブラウザからの要求をエラー無く処理できたなどの、クライアントからの要求に対するサーバーのレスポンス状態を、数字のコードと言葉で表したもの。

以下に代表的なステータスコードを示す。