ハイパーテキスト転送プロトコルは、ハイパーリンクを使用してインターネット上のページを読み込むために使用されます。
この記事を読み終えると、以下のことができるようになります。
関連コンテンツ
是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!
記事のリンクをコピーする
ハイパーテキスト転送プロトコル(HTTP)はWorld Wide Webの基盤であり、ハイパーテキストリンクを使用してWebページを読み込むために使用されます。HTTPは、ネットワークデバイス間で情報を転送するために設計されたアプリケーション層プロトコルであり、ネットワークプロトコルスタックの他の層の上で実行されます。HTTPを介した一般的なフローでは、クライアントマシンがサーバーにリクエストを送信し、サーバーがレスポンスメッセージを送信します。
HTTPリクエストは、Webブラウザーなどのインターネット通信プラットフォームがWebサイトの読み込みに必要な情報を要求する方法です。
インターネットを介して行われる各HTTP要求には、さまざまなタイプの情報を伝送する一連のエンコードされたデータが伝送されます。典型的なHTTPリクエストには以下が含まれます:
これらのリクエストの仕組みや、リクエストの内容を使用して情報を共有する方法をさらに詳しく見ていきましょう。
HTTPメソッドは、HTTP動詞とも呼ばれ、HTTP要求がクエリ先サーバーに期待するアクションを示します。たとえば、最も一般的なHTTPメソッドの2つは「GET」と「POST」です。「GET」要求は情報を返すことを期待します(通常はWebサイトの形式)、「POST」リクエストは通常、クライアントがWebサーバーに情報を送信することを示します(フォーム情報、例えば送信されたユーザー名とパスワード)。
HTTPヘッダーにはキーと値のペアに格納されたテキスト情報が含まれ、HTTPリクエスト(およびレスポンス、詳細は後述)には必ずこのヘッダーがあります。ヘッダーは、クライアントがどのブラウザを使用してどのデータをリクエストしているかなど、コア情報を伝達します。
Google ChromeのネットワークタブのHTTPリクエストヘッダーの例:
リクエストの本文は、リクエストが転送している情報の「本文」を含む部分です。HTTPリクエストの本文には、ユーザー名やパスワード、その他フォームに入力されたデータなど、Webサーバーに送信される情報が含まれます。
HTTP応答は、Webクライアント(多くの場合ブラウザ)がHTTP要求への応答でインターネットサーバーから受信するものです。これらの応答は、HTTP要求で要求された内容に基づいて貴重な情報を伝えます。
一般的なHTTPレスポンスの例として以下が挙げられます。
詳しく確認しましょう:
HTTPステータスコードは3桁のコードで、HTTP要求が正常に完了したかどうかを示すために最もよく使用されます。ステータスコードは、次の5つのブロックに分けられます。
「xx」は00から99までの異なる数字を指します。
数字「2」で始まるステータスコードは成功を示します。たとえば、クライアントがWebページを要求した後、最も一般的に表示される応答のステータスコードは「200 OK」であり、要求が適切に完了したことを示します。
レスポンスが「4」または「5」で始まっていれば、エラーが発生しWebページが表示されないことを意味します。「4」で始まるステータスコードは、クライアント側のエラーを示します(URLの入力ミスにより「404 NOT FOUND」というステータスコードが表示されることはよくあります)。「5」で始まるステータスコードは、サーバー側で何か問題が発生したことを意味します。ステータスコードは「1」または「3」で始まることもあります。これらはそれぞれ、情報レスポンスとリダイレクトを示します。
HTTPリクエストと同様に、HTTPレスポンスには、レスポンス本文で送信されるデータの言語や形式などの重要な情報を伝えるヘッダーが付属しています。
Google ChromeのネットワークタブからのHTTP応答ヘッダーの例:
「GET」リクエストが成功した場合のHTTPレスポンスには通常、リクエストされた情報を含むボディ(本文)があります。ほとんどのWebリクエストではボディにHTMLデータが記述されており、そのデータをWebブラウザがWebページに変換します。
HTTPは「ステートレス」プロトコルであることに注意してください。つまり、各コマンドは他のコマンドとは無関係に実行されます。元の仕様では、それぞれのHTTP要求がTCP接続を作成し、閉じていました。HTTPプロトコルの新しいバージョン(HTTP 1.1以上)では、持続的接続により、複数のHTTP要求が持続的TCP接続を通過できるようになり、リソース消費が改善されます。DoSまたはDDoS攻撃の面では、大量のHTTP要求を使用してターゲットデバイスに攻撃を仕掛けることは可能で、アプリケーション層攻撃または第7層攻撃の一部と見なされます。