【Web開発】HTTP通信とは?HTTPステータスコードとは?HTTP通信の仕組みと要点整理

Web-HTTP

こんにちはフロントエンドエンジニアのまさにょんです!

今回は、Web開発のエンジニアなら知っておきたい、HTTP通信やHTTPステータスコードについて解説していきます。

HTTP通信とは?

HTTP(Hypertext Transfer Protocol)とは「Webクライアント」と「Webサーバー」がWeb上で情報をやり取りするためのプロトコル(通信ルール)です。

そして、そのHTTPプロトコルを使った通信を「HTTP通信」と言います。

つまり、HTTP通信は「Webクライアント」と「Webサーバー」がWeb上で情報をやり取り(通信)することです。

HTTP通信では、1つの要求(リクエスト)には1つの応答(レスポンス)を返すルールになっています。

元々は「Hypertext」(HTML)をやり取りするためのProtocol(通信ルール)でしたが、

そのシンプルさから、今では「REST-API」などのAPI実装時の通信プロトコルとしても採用されています。

次の説明が、とてもわかりやすいので引用します。

HTTP(Hypertext Transfer Protocol)とは、

WebサーバとWebブラウザの間で、Web情報をやりとりするためのプロトコル(通信規則)です。

私たちが普段、ホームページで情報収集したり、ブログを読んだりする時、

このHTTPを使ってサーバとクライアント(ユーザ)間でやり取りが行われます。

HTTPの特徴の1つは動作がとてもシンプルな点です。

情報のやり取りは常に、クライアント(Webブラウザなど)が要求を出し、サーバが応答を返します。

1つの要求(リクエスト)には1つの応答(レスポンス)を返すルールになっていて、

どちらかが多くなることはありません。

また、以前に何を要求したかで応答が変わることなく、

同じ条件ならば、ある要求に対する応答は常に同じものになります。

HTTPは完結で素直な特性を持つことから、WebサーバとWebブラウザ間のやり取り以外に、

スマホやアプリからのサーバ機能呼び出しや、サーバ間のサービス呼び出しなどに幅広く使われており、

主に「REST API」に関係する事項で、

アプリケーション開発時にプログラムが持つ機能を呼び出す場合に利用されます。

引用元: HTTPとは?HTTPSとの違いをサイト移行で実施するリダイレクト設定などをもとに解説

HTTP通信のHTTPリクエストとHTTPレスポンスをざっくりと理解する

HTTP通信の処理フローをざっくりと理解するのが大事です。

HTTP通信は「Webクライアント」と「Webサーバー」がWeb上で情報をやり取り(通信)することです。

HTTP通信のやり取り(通信)は、1つのリクエストとそれに対する1つのレスポンスと言うシンプルなやり取りです。

①「Webクライアント」から「Webサーバー」に送信されるデータを「HTTPリクエスト」と言います。

②「Webサーバー」から「Webクライアント」に送信されるデータを「HTTPレスポンス」と言います。

次の図がわかりやすいです。

引用元: HTTPとは?HTTPSとの違いをサイト移行で実施するリダイレクト設定などをもとに解説

もう少し細かく分けると、次のようにHTTP通信のフローは、4つに分割できます。

  1. Client側がHTTPリクエストを送信する。
  2. Server側がHTTPリクエストを受信&処理をする。
  3. Server側がHTTPレスポンスを送信する。
  4. Client側がHTTPレスポンスを受信&処理をする。

超高速で軽量な素晴らしいホームページである『阿部 寛のホームページ』を事例に具体化してみましょう。

  1. ブラウザのアドレスバーに『阿部 寛のホームページ』のアドレス(http://abehiroshi.la.coocan.jp/)を入力する。
  2. Web-Server(Apacheなど)が「http://abehiroshi.la.coocan.jp/」のRequestを受信してHTMLを発見する。
  3. Web-Serverは、ブラウザにResponse情報としてHTMLを送信する。
  4. ブラウザは、HTML情報を受信して、それを画面に表示する。

HTTPステータスコードとは?

HTTPステータスコードとは、HTTPリクエストに対するサーバー処理の結果を表す3桁の番号です。

HTTPステータスコードの分類と概要を理解する

HTTPステータスコードには、次の5つの分類があります。

HTTPステータスコード番号コードの概要
100番台情報レスポンス(処理中)
200番台成功レスポンス
300番台リダイレクション
400番台クライアントエラー
500番台サーバーエラー
【 HTTPステータスコードの分類と概要 】

上記のように、200番台なら成功や、400番台ならクライアント側でエラー、500番台ならサーバー側でエラーなど

何番台のステータスコードかでHTTP通信の状態がわかるようになっています。

それでは、Web制作やWeb開発でよく見かけるステータスコードをいくつか紹介していきます。

HTTP 200番台 成功レスポンス

HTTPステータスコード200番台は、クライアントからのリクエストが正常に受付されたことを示すステータスコードです。

ステータスコード状態概要
200 OK正常リクエストが成功したこと
201 Created正常リクエストが成功し、新たなリソースが作成されたこと
202 Accepted正常リクエストは受理されたが、処理が完了していないこと

HTTP 300番台 リダイレクションメッセージ

HTTPステータスコード300番台は、「リダイレクト」が発生した際に表示されるステータスコードです。

ステータスコード状態概要
300 Multiple Choice正常リクエストに対してレスポンスが複数あること
301 Moved Permanently正常リクエストされたリソースのURLが恒久的に変更されたこと
302 Found正常リクエストされたリソースのURLが一時的に変更されたたこと

HTTP 400番台 クライアントエラーレスポンス

HTTPステータスコード400番台は、「クライアントエラー」が出たときに表示されるステータスコードです。

ステータスコード状態概要
400 Bad Requestエラーリクエストが不正であること
401 Unauthorizedエラーログインが必要なページなどでアクセス権が無いこと
403 Forbiddenエラー特定IPのみからアクセスできるページなどでアクセス権が無いこと
404 Not Foundエラーリクエストされたリソースがないこと
405 Method Not Allowedエラー許可されていないHTTPメソッドであること
413 Payload Too Largeエラーリクエストのサイズが上限を超えていること

HTTP 500番台 サーバーエラーレスポンス

HTTPステータスコード500番台は、「サーバーエラー」が出たときに表示されるステータスコードです。

ステータスコード状態概要
500 Internal Server Errorエラーサーバーで何らかのエラーが起きたこと
502 Bad Gatewayエラーゲートウェイまたはプロキシで何らかのエラーが起きたこと

Twitterやってます!Follow Me!

神聖グンマー帝国の逆襲🔥

神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!

関連記事

【 HTMLとは? ハイパーテキストとハイパーリンクの意味 】
【 curlコマンドの使い方 Get・Post・REST-APIとの通信 】

参考・引用

  1. 【HTML入門】HTMLとは?ハイパーテキストとハイパーリンクの意味とマークアップとマークダウンの違いを解説
  2. HTTPとは?HTTPSとの違いをサイト移行で実施するリダイレクト設定などをもとに解説
  3. 『阿部 寛のホームページ』
  4. 【よく見るものを解説】HTTPステータスコードとは?コード番号別に詳しく解説
  5. よく使うHTTPステータスコードまとめ

最近の投稿