Kodokon kodokon.com

インターネットのしくみ:クライアント、サーバー、リクエスト

Webページが画面に表示されるとき、誰が誰に何を求めているのかを理解しましょう。

7 分 · 3 問

このレッスンを Kodokon で開く

レストランを思い浮かべてください。席に着き、店員さんを呼び、料理を注文すると、店員さんがそれを運んできてくれます。Webもまったく同じように動いています。ブラウザを使っているあなたがクライアント、つまり注文する側です。その向こうにいるのがサーバーです。空調の効いた建物のどこかで24時間ずっと電源が入っているコンピューターで、その唯一の仕事は、リクエストを待って、それに応えることです。サーバーに魔法のようなところは何もありません。あなたのパソコンと同じ機械で、ただ眠ることがなく、画面も付いていないだけです。

いちばん大事なポイントはこれです。サーバーから先に動くことは決してない、ということ。あなたが何かを求めるまで、サーバーは何も送ってきません。アドレスを打ち込んだりリンクをクリックしたりするたびに、ブラウザはリクエスト(要求)を送り、サーバーがレスポンス(応答)を返します。要求、応答。要求、応答。Web全体が、このやり取りの繰り返しでできています。

リクエストが目的地に届くように、ネットにつながっているすべての機械はIPアドレスを持っています。これは郵便の住所にあたる数字の並びで、たとえば 93.184.215.14 のようなものです。あなたのメッセージは丸ごと一度に送られるわけではありません。パケットと呼ばれる小さなかたまりに分割され、それぞれが数十台の中継機械を通って別々の道を旅し、到着したところで正しい順番に組み立て直されます。相手の機械が応答するかどうかは ping コマンドで確かめられます。

BASH
ping -c 2 example.com

PING example.com (23.215.0.136): 56 data bytes
64 bytes from 23.215.0.136: icmp_seq=0 ttl=54 time=17.3 ms
64 bytes from 23.215.0.136: icmp_seq=1 ttl=54 time=16.9 ms

--- example.com ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
Windowsでは ping -n 2 example.com と書きます。表示されるIPアドレスが違っていても正常です。

では、サーバーは正確には何を返しているのでしょうか。テキストです。Webページとは、サーバーがあなたに送り出し、ブラウザが整形して見せる、HTMLで書かれたテキストファイルにすぎません。ブラウザを使わずに、自分の目で確かめることもできます。curl というツールを使えば、リクエストを送って、返ってきた生のレスポンスをそのままターミナルに表示できます。

BASH
curl -s https://example.com | head -n 5

<!doctype html>
<html>
<head>
    <title>Example Domain</title>
    <meta charset="utf-8" />
curlがページを要求し、head -n 5 が最初の5行だけを表示します。

理解度チェック

このレッスンの要点をしっかり覚えているか確認しましょう。

  1. Webのやり取りで、最初に動くのは誰ですか?
    • サーバー。自分が決めたタイミングでページを送る
    • クライアント、つまりあなたのブラウザ
    • 自宅のルーター。ページを配っている
  2. Webサーバーとは何ですか?
    • 24時間ずっと電源が入っていて、リクエストに応答するコンピューター
    • 自宅をネットワークにつなぐケーブル
    • 画面にページを表示するプログラム
  3. スタイルシート1つと画像3つを含むページがあります。ブラウザはおよそ何回リクエストを送りますか?
    • 1回だけ。すべてまとめて届く
    • 2回。ページ、それからまとめられたファイル群
    • 少なくとも5回。ファイル1つにつき1回