imu-note
いむたろ
いむたろ
@imutaroh
新卒エンジニア / データ基盤 × AI

What — 通信は「頼む側」と「返す側」の役割分担

通信は、リクエスト(依頼)を出す側=クライアント、応えてレスポンスを返す側=サーバーという役割分担でできている。この依頼→応答の往復が、ネットの基本動作。

  • クライアント … 「見たい!」と頼む側(ブラウザやアプリ)
  • サーバー … 「どうぞ、見てください!」と返す側

情報は「もともとそこにあるのを自分が見に行く」のではない。自分が頼んだ瞬間に、サーバーがすごいスピードで見せてくれている

Info

例えるならサーバー=店員さん(serve=「仕える」)、クライアント=お客さん。カフェで「コーヒーください」と頼むお客さんと、出してくれる店員さんの関係を、そのままインターネットに持ち込めばいい。

サーバーは機械の種類ではなく役割

「依頼に応えて情報を返す役」を担っていれば、どんなコンピュータでもサーバーになれる。今使っている MacBook だってなれる。「サーバー」という特別な機械がどこかにあるわけではない。

  • 普段アクセスしているのは、たいてい世界のどこかにあるドデカいコンピュータ
  • Google Drive や iCloud のようなクラウドの正体も同じ。自分の端末ではなく、そのコンピュータに「保存して」「出して」と頼んでいるだけ

相手の居場所は「住所の仕組み」で見つける

頼む相手を一意に指すのが ドメイン → DNS → IPアドレス という住所の仕組み。

部品 役割
ドメイン(api.example.com 人間が覚えやすい名前
IPアドレス(142.251.42.78 コンピュータが使う数字の住所
DNS ドメインを IP アドレスに変換する電話帳

ドメインと IP アドレスは 1:1 で対応している。この変換がリクエストのどの段階で起きるかは HTTPリクエストの流れ に書いた。

Success

サーバーとクライアントは機械の種類ではなく役割の名前。「見たい!」と頼むお客さんがクライアント、応えて返す店員さんがサーバー。その店員さんの居場所を一意に指すのがドメイン→DNS→IPアドレス。

関連