Insights·2026-09-07

ウェブはどう動くのか — 一回のリクエストとレスポンスで見る全体像

ウェブサイトを見るとは、二十四時間つけっぱなしの他人のコンピュータに画面に必要なファイルを求め、返ってきたものをブラウザが画面として描くことである。ウェブ開発で学ぶものはすべて、このリクエストとレスポンスという一本の線の上の別々の位置にある。リクエストの行き先を決めるのがドメイン、何を返すかを決めるのがウェブサーバー、返すものを作るのがバックエンド、返ってきたものを描くのがフロントエンド、中身を貯めておくのがデータベースとストレージだ。

웹 개발 용어는 모두 요청과 응답 한 줄 위에 있다 — 글의 요약 도식

なぜ用語がいつも曖昧になるのか

バイブコーディングを始めると、デプロイ、ポート、API、コンテナ、ビルドといった言葉が次々に出てくる。一つずつ調べればその場では分かるのに、数日たつとまた曖昧になる。

ばらばらに覚えているからだ。これらは互いに独立した知識ではなく、一つの流れの上に順番に並んだ位置の名前である。順番を知らなければ二十個の無関係な単語になり、順番を知れば一本の線になる。

だからこの連載は道具の使い方から始めない。九回にわたってその線を前から後ろへたどる。今日はその線全体を一度に見る。

アドレスバーに入力すると起きること

ブラウザのアドレスバーにアドレスを入れてエンターを押すと、三つのことが順に起きる。

一つ、自分のブラウザがどこかにあるコンピュータに、この画面に必要なものをくれと要求する。二つ、そのコンピュータがファイルを送り返す。三つ、ブラウザがそれを読んで画面として描く。

会員登録でも動画視聴でもコメント投稿でも、違うのは見た目だけだ。中で起きているのはこの三段階の繰り返しである。

一回のリクエスト、一回のレスポンス
自分のブラウザ  ──── この画面に必要なものをください ────▶  サーバー
              ◀─── HTML · CSS · JavaScript · データ ───

ブラウザが受け取ったものを読んで画面を描く

サーバーは特別な機械ではない

サーバーになる三つの条件——インターネット接続、電源が入っている、リクエストに応じるプログラムが動いている——を並べた図。

応答するそのコンピュータをサーバーと呼ぶ。名前のせいで専用機材を思い浮かべやすいが、ただのコンピュータだ。

違うのは一点。いつリクエストが来ても答えられるようにつけっぱなしにしてあることである。この語自体が「仕える」という意味から来ている。

だから自分のノートパソコンもサーバーになれる。ネットにつながっていて、電源が入っていて、リクエストに答えるプログラムが動いていれば条件はそろう。開発中に自分の機械でサーバーを立ててブラウザで開くのが、まさにそれだ。

学ぶものがそれぞれ付く場所

この一本の線を描いておくと、これから出てくる技術の居場所が定まる。

リクエストの行き先を決める場所に IP とポートとドメインがある。何を返すかを決める場所にウェブサーバーがある。返すものを作る場所がバックエンドで、返ってきたものを画面に描く場所がフロントエンドだ。中身を貯めておく場所にデータベースとストレージがある。そしてこの全体を別のコンピュータへ丸ごと移す場所にコンテナがある。

九回はまさにこの順に進む。ブラウザが読む三つのファイルから出発し、アドレスと門番を経てフロントエンドとバックエンドへ行き、データがどこに貯まるかを見てからデプロイで終わる。

回線の上の位置代表的な名前
02ブラウザが読むファイルHTML · CSS · JavaScript
03リクエストの行き先IP · ポート · ドメイン · DNS
04何を返すかを決めるNginx · HTTPS
05返ってきたものを描くNext.js
06返すものを作るFastAPI · JSON
07値を貯めておく場所PostgreSQL
08ファイルを貯めておく場所ストレージ · CDN
09丸ごと移す方法Docker · Kubernetes

この地図が実際に効く場面

エージェントが書いたコードを開いたとき、問える質問ができる。これはどのマスの話か。

画面が出ないという一つの症状も、マスごとに原因が違う。アドレスが違う場所を指している、門番が別のフォルダを返している、バックエンドが答えを作れない、データベースが空である。まったく別の四つの問題だ。先にマスを絞れば検索語が変わる。

エージェントに聞くときも同じである。「サイトが動きません」より「デプロイ後にドメインは引けるが 502 が返ります」のほうがはるかに早く終わる。次回からこのマスを一つずつ埋めていく。