HTTP

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リクエストとヘッダをそのまま返信
PATCHPUTと似ているがこちらはデータの一部更新

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ファイルなどが含まれています。