ホーム第6章: ネットワーク
第6章 5節

HTTPとWebの仕組み

DNSによってIPアドレスが特定され、TCPの接続が確立された後、ウェブサイトのデータをやり取りする段階に入ります。ここで使われるのが、アプリケーション層のプロトコルであるHTTPです。ブラウザとサーバーが交わすリクエストとレスポンスのやり取り、そして受け取ったデータが画面に表示されるまでの仕組みを学びます。

1. クライアント・サーバーシステムとHTTP

ウェブの世界は、クライアント(依頼者:ブラウザ)サーバー(提供者:ウェブサーバー)が対話を行う「クライアント・サーバーモデル」で成り立っています。

この両者が会話をするための共通言語(プロトコル)が HTTP(Hypertext Transfer Protocol) です。

HTTPの対話は、常にクライアントからのリクエスト(要求)で始まり、サーバーからのレスポンス(応答)で終わる、シンプルな「往復」で構成されています。

Webブラウザ (クライアント) HTTPリクエスト (GET /index.html) HTTPレスポンス (200 OK + HTMLデータ) Webサーバー (データ提供者)
図 6-7:HTTPによるリクエストとレスポンスの往復モデル

2. HTTPリクエストの構成

ブラウザは、サーバーに対して「〇〇のデータをください」という手紙を送ります。 この手紙の最も重要な要素はリクエストメソッド(要求方法)です。

  • GET: ウェブページや画像などを「取得」したいときに使います。
  • POST: お問い合わせフォームの入力データや、ログイン用のパスワードなどをサーバーに「送信・登録」したいときに使います。

3. HTTPレスポンスとステータスコード

リクエストを受け取ったサーバーは、処理結果を記載したレスポンスを返します。 レスポンスの先頭には、処理結果が成功したのか失敗したのかを3桁の数字で表すステータスコード(Status Code)が書かれています。

コード範囲 代表的なコード 意味と動作
2xx (成功) 200 OK リクエストは正常に受け付けられ、要求されたデータが同封されています。
3xx (転送) 301 Moved Permanently 要求されたページは別のアドレスに引っ越しました。自動的に転送(リダイレクト)します。
4xx (クライアントエラー) 404 Not Found 要求されたページやファイルが見つかりません。アドレスの入力間違いなどが原因です。
5xx (サーバーエラー) 500 Internal Server Error サーバー側のプログラムでバグが発生し、正しく応答できません。

4. ブラウザによる描画:レンダリング(Rendering)

サーバーから返ってきたレスポンスの本体(ボディ)には、通常 HTML(構造)CSS(見た目の装飾)JavaScript(動的な処理)のプログラムコードが書き込まれています。

ブラウザは、これらのコードを読み込み、内部で木構造(DOMツリー)へと組み立てた上で、ディスプレイのピクセルデータに変換し、ウェブページとして描画します。このプロセスのことをレンダリング(Rendering)と呼びます。

5. より安全な通信:HTTPS(Sが付く意味)

初期のHTTPでは、やり取りされるすべてのデータが「暗号化されない平文」でインターネットを流れていました。これでは、途中のルーターを盗聴されると、ログインIDやクレジットカード番号がそのまま盗まれてしまいます。

そこで開発されたのがHTTPS(HTTP Secure)です。 HTTPSでは、HTTPの通信データをSSL/TLSと呼ばれる暗号化プロトコルで暗号化して送信します。これにより、万が一通信が傍受されても、中身は第三者には解読できず、安全なオンライン決済やプライバシー保護が実現されています。

第6章では、コンピュータ同士が繋がるネットワークについて学びました。プロトコルの階層化、IPによるルーティング、TCPによる信頼性保証、DNSによる名前解決、HTTPによる通信など、現代のインターネットがどのように連携して動作しているのかを学びました。

次の第7章では、これらネットワークを流れるデータを、矛盾なく安全に保管・抽出する「データベース」の仕組みについて学んでいきましょう。