HTTPとは?

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

Share facebook icon linkedin icon twitter icon email icon

HTTP

学習目的

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

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

HTTPとは?

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

HTTPリクエストには何が含まれるのか?

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

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

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

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

HTTPメソッドとは?

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

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

HTTPヘッダーにはキーバリューペアで保存されたテキスト情報が含まれており、すべてのHTTPリクエスト(および応答、詳細は後述)に含まれています。これらのヘッダーは、クライアントがどのブラウザを使用してどのデータが要求されているかなど、コア情報を伝達します。

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

HTTP request headers

HTTPリクエストの本文には何が含まれるのか?

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

HTTPレスポンスには何が含まれるのか?

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

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

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

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

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

    1. 1xx情報
    2. 2xx 成功
    3. 3xxリダイレクト
    4. 4xxクライアントエラー
    5. 5xxサーバーエラー
    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 response headers

      HTTP応答本文には何が含まれるのか?

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

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

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