本文へスキップ
BecomeCoder

サーバーコース · 第1章 サーバーとは何か · レッスン1

サーバーとクライアント ― Webの裏側で何が起きているか

ローカル実施

導入

あなたがスマホでウェブサイトを開くとき、画面の向こうでは必ず サーバー という「相手役」のコンピュータが動いています。サイトを見る側(あなた)を クライアント、情報を提供する側を サーバー と呼びます。この2人1組の関係が、インターネットの一番の基本です。

説明

「サーバー(server)」は英語で 給仕する人・提供する人 という意味です。レストランのウェイターを思い浮かべてください。お客(クライアント)が「メニューをください」と頼むと、ウェイター(サーバー)が持ってくる。Web もまったく同じ構図です。

flowchart LR
    C["クライアント<br/>(あなたのスマホ/PC)"] -->|"① これください<br/>(リクエスト)"| S["サーバー<br/>(相手のコンピュータ)"]
    S -->|"② はいどうぞ<br/>(レスポンス)"| C

たとえば https://example.com を開くと、裏ではこんなやりとりが起きています。

  1. あなたのブラウザ(クライアント)が「example.com のトップページをください」と**お願い(リクエスト)**を送る
  2. example.com のサーバーが、ページのデータを**返事(レスポンス)**として送り返す
  3. ブラウザがそのデータを受け取り、画面に描く

この「頼む→返す」を リクエストとレスポンス と呼びます。Web に限らず、メール・LINE・オンラインゲーム・アプリの通信——ほとんどが、この形の繰り返しでできています。

サーバーは特別な機械ではありません。 「ずっと電源が入っていて、頼まれたら答える役」をしているコンピュータを、そう呼ぶだけです。あなたの PC も、設定すればサーバーになれます。逆に、サーバーも中身はふつうのコンピュータで、キーボードもマウスも(ふだんは)使わずに動き続けています。

flowchart TD
    subgraph クライアント側
      A["Webブラウザ"]
      B["スマホアプリ"]
      C["別のサーバー"]
    end
    A --> S["1台のサーバー"]
    B --> S
    C --> S
    S --> D[("データや<br/>ファイル")]

1台のサーバーには、世界中から大勢のクライアントが同時にアクセスします。だからサーバーには「たくさんの相手を、止まらず、安全にさばく」力が求められます。その裏方を支えているのが Linux であり、それを操るのがコマンド——というのが、このコースの主役です。

この章のまとめ

  • クライアント=頼む側(あなた)、サーバー=答える側(相手のコンピュータ)
  • 通信の基本は リクエスト(お願い)→ レスポンス(返事) の繰り返し
  • サーバーは特別な機械ではなく、「答える役に徹しているコンピュータ」
  • 次のレッスンでは「そのサーバーの中身は、なぜ Linux なのか」を見ていきます