📑

HTTPとは?

2023/09/25に公開

HTTP(Hypertext Transfer Protocol)とは

クライアントとサーバの間で情報をやり取りするためのプロトコル(通信規約)です。
HTTPはインターネット上でのデータ通信のための基盤となる技術であり、ウェブブラウザからウェブサーバへのリクエストや、ウェブサーバからのレスポンスの送受信に使用されます。
Webページの表示やファイルのダウンロードなど、インターネット上で行われるほとんどの情報のやり取りはHTTPを介して行われます。

HTTPリクエストとHTTPレスポンス

  • HTTP通信は、クライアント(ブラウザ)からサーバーに向けて送られるリクエストと、サーバーからクライアントに返されるレスポンスのやり取りで成り立っています。
  • リクエストには、要求するアクション(GET、POSTなど)や対象のURL、ヘッダ情報などが含まれます。
  • レスポンスには、ステータスコード(リクエストの成否を示す番号)、レスポンスの内容(HTML、画像、テキストなど)などが含まれます。

HTTPとHTTPSの違い

HTTPとHTTPSの違いは通信が暗号化されていないか暗号化されているかの違いがあります。HTTPSが暗号化されている方です。
HTTPS(Hytertext Transfer Protocol Secure)は、HTTPで通信を安全に行うための仕組みです。WebブラウザとWebサーバで、ネットバンキング、クレジットカード決済サービス、個人情報登録や編集を行うようなケースで使用されます。
知られたらまずい情報を扱う時に使います。

HTTPリクエストの基本的な流れ

1. クライアントのリクエストの作成

クライアント(通常はウェブブラウザ)が要求するリソースや操作を指定して、HTTPリクエストを作成します。

  • メソッド(GET、POST、PUT、DELETEなど): リクエストの目的やアクションを示します。
  • URL(Uniform Resource Locator): リソースの場所を示すためのアドレスです。
  • ヘッダ(Headers): リクエストのメタ情報を含んだヘッダ行です。
  • ボディ(Body): 必要に応じて、データをリクエストのボディに含めることがあります。

2. リクエストの送信

クライアントは作成したHTTPリクエストをサーバーに送信します。これは通常、サーバーのIPアドレスとポート番号を使用して行われます。

3. サーバーのリクエストの受信

サーバーはクライアントからのリクエストを受け取ります。受信したリクエストの解析を行い、要求された操作やリソースを特定します。

4. リクエストの処理

サーバーはリクエストに応じて適切な処理を行います。これには、データベースの検索や更新、外部APIとの通信などが含まれます。

5. レスポンスの作成

サーバーはリクエストの処理結果や要求されたデータを含んだHTTPレスポンスを作成します。

  • ステータスコード(200、404、500など): リクエストの成否や処理の状態を示す番号です。
  • ヘッダ(Headers): レスポンスのメタ情報を含んだヘッダ行です。
  • ボディ(Body): レスポンスに含まれるデータやコンテンツが格納されます。

6. レスポンスの送信

サーバーは作成したHTTPレスポンスをクライアントに送信します。

7. クライアントのレスポンスの受信

クライアントはサーバーからのレスポンスを受け取ります。受け取ったレスポンスを解析し、必要な処理を行います。

ステータスコード

HTTPレスポンスのステータスコードは、リクエストの成否や処理状態を示す番号です。主要なステータスコードの例を乗っけておきます

ステータスコード 説明
100 Continue リクエスト継続中
200 OK リクエストの受理成功
301 Moved Permanently リクエストコンテンツ移動
302 Found リクエストコンテンツが一時的に移動
304 Not Modified リクエストコンテンツ未更新
400 Bad Request リクエストが不正
401 Unauthorized 認証失敗
403 Forbidden アクセス権がない
404 Not Found リクエストが見つからない
500 Internal Server Error リクエストの処理中にサーバー側でエラー
503 Service Unavailable アクセス集中、メンテナンス

参考にさせていただいた記事

https://zenn.dev/thao_0108/articles/b75e6c438a86f4

Discussion