HTTPとは
HTTP(Hyper Text Transfer Protocol)とは、Webサイトを表示させるためにWebサーバとクライアントの通信をするためのプロトコルです。
クライアント(Webブラウザなど)からWebサーバにHTTP通信を行いWebサーバから情報をもらうことでWebサイトを表示させています。
HTTPの通信シーケンス
HTTPの通信はクライアントがWebサーバに対してHTTPリクエストを送信してそれに対してWebサーバがHTTPレスポンスを送り返す通信シーケンスとなっています。

HTTPのメソッドとステータスコード
メソッド
クライアントがwebサイトを見るためにwebサーバにHTTPリクエストを送信しますが、その際に使用する通信の種類のことをメソッドと言います。
| メソッド | 内容 |
| GET | データを取得するためにURIで指定した情報の要求 |
| HEAD | ヘッダだけを取得するための要求 |
| POST | データの送信 |
| PUT | データの上書き |
| DELETE | データの削除 |
| CONNECT | プロキシサーバとの通信時に使用 |
| OPTIONS | 通信オプションの要求 |
| TRACE | リクエストとヘッダをそのまま返信 |
| PATCH | PUTと似ているがこちらはデータの一部更新 |
Webサイトを表示させるための一般的な通信のためのGETメソッドやWebサーバに情報を送信するための通信のPOSTメソッドがよく使用されます。
ステータスコード
HTTPリクエストを受け取ったWebサーバがHTTPメッセージを返答する際にその通信結果を示している情報がステータスコードです。
| コードの数字 | 内容 | 例 |
| 100番台 | 情報レスポンス リクエストが否定されているわけではなく、 続きの情報がある | 100 Continue →リクエスト継続中 101 Switching Protocols →プロトコルの切り替え |
| 200番台 | 成功 クライアントからのHTTPリクエストが正常に処理された | 200 OK →問題なし 201 Created →リソースの作成完了 |
| 300番台 | リダイレクト 別のURLにリダイレクトするよう要求する | 301 Moved Permanently →URLが永遠に変更 302 Found →URLが一時的に変更 304 Not Modified →情報が未変更 |
| 400番台 | クライアント側のエラー クライアント側のHTTPリクエストに問題あり | 403 Forbidden →アクセス拒否 404 Not Found →ページが見つからない |
| 500番台 | サーバ側のエラー サーバ側の情報に問題あり | 500 Internal Server Error →サーバエラー 503 Service Unavailable →サーバ利用不可 |
普通にインターネットをやっていると403エラーや404エラーは見かけることも多いのではないかと思います。
HTTPのパケットフォーマット
HTTPフォーマットはスタートライン、ヘッダ、空白行、ボディで構成されています。
スタートライン
WebクライアントとWebサーバの通信の情報を示しており、HTTPリクエストの場合はGETやPOSTのメソッドと対象のURI等や、HTTPレスポンスの場合はステータスコードやその簡単な説明(OK等)が含まれています。
ヘッダ
WebブラウザやWebサーバの情報などを示しています。ヘッダの種類はたくさんあり、ブラウザやサーバの種類、データの種類、クッキー情報、認証情報、日付等が含まれています。
空白行
ヘッダの終了を示します。
ボディ
実際に通信に必要な情報を示します。HTTPリクエストなら通信をする際に入力する情報や、HTTPレスポンスであればHTMLファイルなどが含まれています。