HTTPメッセージは以下の複数行のデータから構成されています。
スタートラインに関しては異なり、HTTPリクエスト時はリクエスト行、HTTPレスポンスではステータス行と呼ばれます。
ステータスラインは構成として三つに分けれます。
HTTP/1.1 200 OK
左からプロトコルバージョン、ステータスコード、テキストフレーズで成り立っています。ここで重要なのがステータスコードです。レスポンスに間違ったステータスコードを渡してしまうとクライアントがその後どんな操作をすればいいかわからなくなってしまいます。
ステータスコード
webブラウザからリクエストが送られ、サーバーがそれに対してレスポンスを返します。このとき、HTTPメッセージのスタートライン行にはリクエストに対する処理結果が3行の数字で表現されます。この3行の数字をステータスコードといいます。ステータスコードは処理内容によって100番台から500番台の5つで分類されています。
100番台 処理中
処理がまだ継続していることを示します。
200番台 成功
リクエストが成功したことを示します。
300番台 リダイレクト
ほかのURLにリダイレクトすることを示す。このステータスコードを受け取るとレスポンスメッセージのLocationヘッダを参照して、そのURLのページに移動する。
400番台 クライアントエラー
クライアント側のエラーを示す。「404 Not Faund」はクライアントエラーとして一般的によく表示されることが多いステータスコード。
500番台 サーバーエラー
サーバーエラーを示し、サーバー側の問題を解決しないと正常な結果が得られない。サーバーに高負荷がかかったときによく表示される。
メッセージヘッダ
HTTPメッセージに関する詳細なことはメッセージヘッダに書かれています。クライアントやサーバーはこのメッセージヘッダを見て、メッセージに対す挙動を決めます。メッセージヘッダは複数の「ヘッダフィールド」からなりたっています。
メッセージボディ
バイナリデータ(コンピュータが扱うデータ全般)が入ります。例えばリクエスト時はPOSTメソッドが実行されたとき、パラメータが入ります。レスポンスではHTMLが含まれたりします。