HTTPとは

 HTTP(Hyper Text Transfer Protocol)通信とはWebアプリケーションとPC間でHTMLのような情報やデータを送受信する通信方法のことです。

 手紙を送るまでの流れに例えると、HTTP通信が書留や速達といった送り方の種類を指し、URL(Uniform Resource Locator)が送り先の住所になります。

 PC(クライアントサイド)がWebアプリケーション(サーバーサイド)に対してデータや情報を要求することを「リクエスト」と言ます。そしてWebアプリケーションがその要求された情報をPCに返却することを「レスポンス」と言います。

 

 

HTTPリクエス

 前述したようにHTTPリクエストはブラウザ(クライアントサイド)からサーバーサイドに送るものです。つまりHTTPリクエストを作るのはブラウザです。このHTTPリクエストには「HTTPリクエスト行」、「HTTPヘッダー」、「データ本体」が含まれます。

HTTPリクエスト行

 HTTPリクエストの1行目であるHTTPリクエスト行には主に「GET」というメソッド、「URL」、「HTTPのバージョン」が入っています。メソッドが「POST」(フォームから情報を送信するとき)の場合はHTTPヘッダーの後にデータ本体が続きます。

HTTPヘッダー

 2行目以降のHTTPヘッダーには、ユーザーエージェント名やクッキーなどの情報が含まれます。ユーザーエージェント名はブラウザやOSの種類であり、クッキーはログイン状態を続けるためにブラウザに保存されるデータのようなものです。他にもどのページから発生したリクエストなのかを示すリファラや、どんなデータを受け取りたいかといった情報が含まれます。

 

 

HTTPレスポンス

 HTTPレスポンスはサーバーサイドからブラウザ(クライアントサイド)に送るものであるため、サーバーが作ります。HTTPレスポンスには「レスポンス状態行(HTTPステータスコード)」、「HTTPヘッダー」、「データ本体」が含まれます。

HTTPステータスコード

 HTTPステータスコードはリクエストに対する返答の状態を示します。

100番台は処理の継続中であり、200番台は処理の成功を意味します。300番台はリダイレクト、400番台はクライアント側のエラーを表します。401は「ユーザー認証が必要」、404は「見つかりませんでした」という意味になります。そして500番台はサーバー側のエラーです。

HTTPヘッダー

 HTTPヘッダーにはコンテンツタイプやデータの最終更新日時やエンティティ情報などが含まれます。コンテンツタイプとは、データがHTMLか画像かといった情報や文字コードなどの情報を示すものです。他にも接続状況やリダイレクト先などの情報も入っています。

 

 

 自分の頭を整理する目的でHTTPについて書いてみました。こちらの記事を参考にしました。

HTTPリクエスト/レスポンスとは? HTTPヘッダーを理解しよう | 初代編集長ブログ―安田英久 | Web担当者Forum