HTTPとWebの仕組み
DNSによってIPアドレスがわかり、TCPの接続が確立されたら、ついに私たちが普段見ている「ウェブサイト」のデータをやり取りする段階に入ります。ここで活躍するのが、アプリケーション層の代表的なプロトコルであるHTTPです。ブラウザとサーバーが交わすリクエストとレスポンスの対話、そして受け取ったデータが画面に描画されるまでの仕組みを学びます。
1. クライアント・サーバーシステムとHTTP
ウェブの世界は、クライアント(依頼者:ブラウザ)とサーバー(提供者:ウェブサーバー)が対話を行う「クライアント・サーバーモデル」で成り立っています。
この両者が会話をするための共通言語(プロトコル)が HTTP(Hypertext Transfer Protocol) です。
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章では、これらネットワークを流れる膨大なデータや、企業の重要資産を、矛盾なく安全に保管・抽出する「データベース」の仕組みについて学んでいきましょう。