検索
特集/連載

いまさら聞けない「HTTP通信」 “Webページを届ける”仕組みとは「HTTP」の基本と進化を理解する【中編】

Webサイトにアクセスすると、ブラウザとWebサーバ間では「HTTP」による通信が発生する。ユーザーが目にするページは、裏側で交わされる「リクエスト」と「レスポンス」のやりとりによって成り立っている。

Share
Tweet
LINE
Hatena

 Webサイトにアクセスすると、ブラウザとWebサーバの間では通信プロトコル「HTTP」(Hypertext Transfer Protocol)による情報のやりとりが発生する。ユーザーが目にするWebページは、この背後で交わされている「リクエスト」(要求)と「レスポンス」(応答)のやりとりの結果として表示されているものだ。中編となる今回は、HTTP通信の具体的な流れとして、リクエストとレスポンスの構造と処理の仕組みを見ていく。

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

 クライアントデバイス(以下、クライアント)はサーバにHTTPリクエストを送信し、サーバはHTTPレスポンスをクライアントに送り返す。リクエストにはWebサイトを読み込むためにクライアントがサーバから求めている情報が記述され、レスポンスにはクライアントのWebブラウザがWebページとして表示するためのソースコードが含まれている。

 サーバとクライアントでがデータを共有するために使用するこれらのリクエストとレスポンスは、標準的な文字コード「ASCII」コードで構成されている。クライアントとサーバ間のやりとりはメッセージと呼ばれ、HTTPメッセージはリクエストまたはレスポンスのいずれかとなる。

HTTPリクエスト

 クライアントからのリクエストは、クライアントへのレスポンスを調整するために必要な情報をサーバに提供する。各HTTPリクエストには、以下のような情報を含むエンコードされたデータが含まれている。

  • 使用されているHTTPのバージョン
    • 現在利用可能なバージョンは、HTTP、HTTP/2、HTTP/3だ。
  • URL
    • URLはリソース、つまりWebを介してアクセス可能な特定のWebサイトを指す。
  • HTTPメソッド
    • HTTPメソッドは、レスポンス時にリクエストがサーバからの応答として期待する特定のアクションを示す。
  • HTTPリクエストヘッダ
    • HTTPリクエストヘッダには、使用されているブラウザの種類やリクエストがサーバに求めているデータなどの情報が含まれる。リクエストを処理するサーバから以前送信された情報を示すCookieが含まれることもある。
  • HTTPボディ
    • これはサーバがリクエストから必要とするオプション情報で、Webサイトに送信されるユーザーフォーム(ユーザー名/パスワードのログイン、短いレスポンス、ファイルのアップロードなど)が含まれる。

HTTPレスポンス

 HTTPレスポンスメッセージは、クライアントからのHTTPリクエストに対するサーバの応答のことだ。レスポンスに含まれる情報は、サーバがリクエストから受け取った内容に合わせて調整され、以下のデータを含むことがある。

  • HTTPステータスコード
    • これはクライアントデバイスに対してリクエストのステータスを示す。レスポンスは、成功、情報レスポンス、リダイレクト、サーバ側やクライアント側でのエラーを示すことがある。
  • HTTPレスポンスヘッダ
    • サーバと要求されたリソースに関する情報を送信する。
  • HTTPボディ(オプション)
    • リクエストが成功した場合、ボディにはHTMLコードの形で要求されたデータが含まれ、クライアントブラウザによってWebページに変換される。

HTTPステータスコード

 HTTPリクエストに対するレスポンスとして、サーバはしばしばレスポンスコードを発行し、リクエストが処理中であること、リクエストにエラーがあること、またはリクエストがリダイレクトされていることを示す。以下に一般的なレスポンスコードをいくつか挙げる。

  • 200 OK
    • これは最も一般的なレスポンスコードの一つで、GETやPOSTなどのリクエストが成功し、それに基づいて処理されていることを意味する。
  • 300 Moved Permanently
    • リクエストされたリソースのURLが永続的に変更された。
  • 401 Unauthorized
    • クライアント(サーバにリクエストを行っているエンドユーザー)が認証されておらず、リクエストされた情報へのアクセスが許可されていない。
  • 403 Forbidden
    • サーバがアクセスを禁止している。
  • 404 Not Found
    • 404エラーコードは、URLが間違っているか、その場所にリソースが存在しないことを意味する。
  • 500 Internal Server Error
    • サーバ内で予期しないエラーが発生し、リクエストを正常に処理できなかった。

 次回の後編は、HTTP/3で採用された新しい通信プロトコル「QUIC」や、Webの安全性を高める「HTTPS」、そしてWeb通信を支える「プロキシ」の役割について解説する。

関連キーワード

アプリケーション | Webサイト


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る