HTTPとは?

ハイパーテキスト転送プロトコルは、ハイパーリンクを使用してインターネット上のページを読み込むために使用されます。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • HTTPを定義する
  • HTTPリクエストと応答の構造を説明する
  • HTTP経由でDDoS攻撃を開始する方法を理解する

関連コンテンツ


さらに詳しく知りたいとお考えですか?

是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!

当社がお客様の個人データをどのように収集し処理するかについては、Cloudflareのプライバシーポリシーをご確認ください。

記事のリンクをコピーする

HTTPとは?

ハイパーテキスト転送プロトコル(HTTP)はWorld Wide Webの基盤であり、ハイパーテキストリンクを使用してWebページを読み込むために使用されます。HTTPは、ネットワークデバイス間で情報を転送するために設計されたアプリケーション層プロトコルであり、ネットワークプロトコルスタックの他の層の上で実行されます。HTTPを介した一般的なフローでは、クライアントマシンがサーバーにリクエストを送信し、サーバーがレスポンスメッセージを送信します。

HTTPリクエストとは?

HTTPリクエストは、Webブラウザーなどのインターネット通信プラットフォームがWebサイトの読み込みに必要な情報を要求する方法です。

インターネットを介して行われる各HTTP要求には、さまざまなタイプの情報を伝送する一連のエンコードされたデータが伝送されます。典型的なHTTPリクエストには以下が含まれます:

  1. HTTPバージョンタイプ
  2. URL
  3. HTTPメソッド
  4. HTTPリクエストヘッダー
  5. オプションのHTTP本文。

これらのリクエストの仕組みや、リクエストの内容を使用して情報を共有する方法をさらに詳しく見ていきましょう。

レポート
DDoS脅威の現状:2023年第3四半期

レポート
2023年第4四半期のDDoS脅威状況レポートを読む

HTTPメソッドとは?

HTTPメソッドは、HTTP動詞とも呼ばれ、HTTP要求がクエリ先サーバーに期待するアクションを示します。たとえば、最も一般的なHTTPメソッドの2つは「GET」と「POST」です。「GET」要求は情報を返すことを期待します(通常はWebサイトの形式)、「POST」リクエストは通常、クライアントがWebサーバーに情報を送信することを示します(フォーム情報、例えば送信されたユーザー名とパスワード)。

HTTPリクエストヘッダーとは?

HTTPヘッダーにはキーと値のペアに格納されたテキスト情報が含まれ、HTTPリクエスト(およびレスポンス、詳細は後述)には必ずこのヘッダーがあります。ヘッダーは、クライアントがどのブラウザを使用してどのデータをリクエストしているかなど、コア情報を伝達します。

Google ChromeのネットワークタブのHTTPリクエストヘッダーの例:

 HTTPリクエストヘッダー

DDoS攻撃対策
すべてのCloudflareプランでDDoS攻撃対策が実現します。

HTTPリクエストボディとは?

リクエストの本文は、リクエストが転送している情報の「本文」を含む部分です。HTTPリクエストの本文には、ユーザー名やパスワード、その他フォームに入力されたデータなど、Webサーバーに送信される情報が含まれます。

HTTPレスポンスとは?

HTTP応答は、Webクライアント(多くの場合ブラウザ)がHTTP要求への応答でインターネットサーバーから受信するものです。これらの応答は、HTTP要求で要求された内容に基づいて貴重な情報を伝えます。

一般的なHTTPレスポンスの例として以下が挙げられます。

  1. HTTPステータスコード
  2. HTTP応答ヘッダー
  3. オプションのHTTP本文
  4. 詳しく確認しましょう:

    HTTPステータスコードとは何ですか?

    HTTPステータスコードは3桁のコードで、HTTP要求が正常に完了したかどうかを示すために最もよく使用されます。ステータスコードは、次の5つのブロックに分けられます。

    1. 1xx Informational (情報)
    2. 2xx Success (リクエスト成功)
    3. 3xx リダイレクション
    4. 4xx Client Error (クライアントエラー)
    5. 5xx Server Error (サーバーエラー)
    6. 「xx」は00から99までの異なる数字を指します。

      数字「2」で始まるステータスコードは成功を示します。たとえば、クライアントがWebページを要求した後、最も一般的に表示される応答のステータスコードは「200 OK」であり、要求が適切に完了したことを示します。

      レスポンスが「4」または「5」で始まっていれば、エラーが発生しWebページが表示されないことを意味します。「4」で始まるステータスコードは、クライアント側のエラーを示します(URLの入力ミスにより「404 NOT FOUND」というステータスコードが表示されることはよくあります)。「5」で始まるステータスコードは、サーバー側で何か問題が発生したことを意味します。ステータスコードは「1」または「3」で始まることもあります。これらはそれぞれ、情報レスポンスとリダイレクトを示します。

      HTTP応答ヘッダーとは?

      HTTPリクエストと同様に、HTTPレスポンスには、レスポンス本文で送信されるデータの言語や形式などの重要な情報を伝えるヘッダーが付属しています。

      Google ChromeのネットワークタブからのHTTP応答ヘッダーの例:

      HTTP応答ヘッダー

      HTTPレスポンスボディとは?

      「GET」リクエストが成功した場合のHTTPレスポンスには通常、リクエストされた情報を含むボディ(本文)があります。ほとんどのWebリクエストではボディにHTMLデータが記述されており、そのデータをWebブラウザがWebページに変換します。

      DDoS攻撃はHTTP経由で開始され得るか?

      HTTPは「ステートレス」プロトコルであることに注意してください。つまり、各コマンドは他のコマンドとは無関係に実行されます。元の仕様では、それぞれのHTTP要求がTCP接続を作成し、閉じていました。HTTPプロトコルの新しいバージョン(HTTP 1.1以上)では、持続的接続により、複数のHTTP要求が持続的TCP接続を通過できるようになり、リソース消費が改善されます。DoSまたはDDoS攻撃の面では、大量のHTTP要求を使用してターゲットデバイスに攻撃を仕掛けることは可能で、アプリケーション層攻撃または第7層攻撃の一部と見なされます。