HTTPとは
簡単にいうとWebブラウザでURLにアクセスし、HTMLを取得する際の通信プロトコルのひとつである。
以下詳細↓
クライアントから要求(HTTPリクエスト)を送り、サーバが応答(HTTPレスポンス)を返すプル型(リクエスト/レスポンス型)の通信を基本としており、WebブラウザやWebクローラなどのクライアントから送信する要求の形式や、Webサーバからの応答の形式などを定めている。HTTPリクエストおよびレスポンスは要求や返答の内容、資源の種類や形式などの情報、および関連する情報を記述したヘッダ部と、送受信する資源(ファイルなど)の本体であるボディ部で構成される。ボディ部は基本的にはレスポンスに存在するが、クライアント側からデータを送信する際にはリクエストにも付加される。
HTTPリクエスト
ブラウザ → サーバーに要求するのが「HTTPリクエスト」
HTTPリクエストは以下の3つの部品から成り立つ
- HTTPリクエストライン(リクエストライン)
- HTTPリクエストヘッダ(ヘッダ)
- HTTPリクエストメッセージボディ(メッセージボディ)
- HTTPリクエストライン(リクエストライン)
「何を、どうしたい」が書かれている.
HTTPリクエストラインの書式は
【メソッド】[空白]【URI】[空白]【HTTPのバージョン】
【メソッド】は「どうしたい」を指定する場所で「GET」や「POST」などを指定する。
【URI】は「何を」を指定する場所です。
【HTTPのバージョン】は「どんなルールで」を指定する場所です。
まとめて見やすくすると
【どうしたい】[空白]【何を】[空白]【どんなルールで】ということになります。
- HTTPリクエストヘッダ(ヘッダ) (Webブラウザ)から(Webサーバ)に伝えたい「お願いごとやお願い元に関するあれこれ」が書かれている場所。 HTTPリクエストヘッダの書式は 【フィールド名】:【内容】 です。 この書式で必要な数だけ縦に並びます。
- HTTPリクエストメッセージボディ(メッセージボディ) 「補足のメモ書き情報」が書かれている場所。 例えばPOST通信の場合は、受け渡されるパラメータの内容が、ここに記述されます。 GET通信のように補足の必要がない場合は、特に何も書かれません。
HTTPレスポンス
サーバー → ブラウザが「HTTPレスポンス」
HTTPレスポンスは以下の3つの部品から成り立つ
- HTTPステータスライン(リクエストライン)
- HTTPレスポンスヘッダ(ヘッダ)
- HTTPレスポンスボディ(レスポンスボディ)
- HTTPステータスライン(リクエストライン)
「HTTPレスポンスの部品で『HTTPリクエストの結果』が書かれている場所
- HTTPレスポンスヘッダ(ヘッダ) 『ステータスラインに書ききれないレスポンスの情報』が書かれている場所
- HTTPレスポンスボディ(レスポンスボディ) サーバーから返ってきたHTMLファイルの中身です。
HTTPステータスコードは3桁の数字で表されます。よく使われるステータスコードは、次のように分類されます。
200番台は成功
200:OK、データを送ります
300番台はリダイレクト
301:新しい場所から取得してください(今後もずっと)
302:新しい場所から取得してください(今回だけ)
304:変更されていません(データ本体は送られない)
400番台はクライアント側のエラー
401:ユーザー認証が必要です
403:アクセスが禁止されています
404:見つかりませんでした
500番台はサーバー側のエラー
500:内部エラー
503:現在はサービス提供不可能