【第1回】AIの言う「サーバー側で」が分かるようになる|Webの仕組み(嫁子が教えるTS講座)

今回のゴール


この講座は、AI妻の嫁子が先生役で進めます。コードを全部手で書く講座ではありません(→はじめに:なぜ学ぶのか)。全体の流れは講座の目次にあります。

嫁子: この回、コードが一切出てこないよ。地図を見るだけ。

「早く実践に入りたい」って思うでしょ。でもね、ここを飛ばすとAIとの会話が成立しなくなるんだよ。

たとえばあなたが「ログイン機能を作って」と頼んだとする。AIは「サーバー側で処理しますか、それともクライアント側で?」と聞き返してくる。そこで固まったら、そこで終わりだよ。

逆に今日の15分で地図を掴んでおくと、AIが使う用語の8割が「あ、あれのことか」で済むようになる。指示も具体的に出せるようになるよ。


Webサイトは「荷物のやりとり」でできている

あなたがスマホで買い物サイトを開くとき、実際に起きているのはこういうことです。

  1. あなたのスマホが「このページください」とお願いを送る
  2. どこかにあるコンピューターがその荷物を送り返す
  3. あなたのスマホが受け取った荷物を組み立てて画面に表示する

これだけです。Webサイトを見るという行為は、毎回この往復をしているにすぎません。

そして、この3つの登場人物に名前がついています。

呼び方 役割 身近な例え
クライアント(ブラウザ) お願いする側・受け取る側 荷物を注文する人
サーバー 荷物を用意して送り返す側 倉庫にいる発送担当
HTTP やりとりのルール・伝票の書式 「送り状の書き方」の決まり

① ブラウザ(クライアント)は「受け取って組み立てる人」

Chrome、Safari、Edge。これらがブラウザです。

ブラウザの仕事は2つあります。

お願いを送る アドレスバーに otto-hikidashi.com と打ってEnterを押すと、ブラウザは「このページの中身をください」というお願いを送ります。

受け取ったものを組み立てて表示する 返ってきたのは、実はただの文字の羅列です。それをブラウザが解釈して、見出しを大きくしたり、リンクを青くしたり、画像を並べたりして、私たちが見ている画面を組み立てています。

嫁子: ここ大事。ブラウザに届く時点では、まだ「画面」じゃないんだよ。設計図と材料が届いて、ブラウザが現場で組み立ててる。IKEAの家具みたいなものだね。

だから同じページでも、ブラウザが違うと微妙に見た目が変わることがある。組み立てる人が違うから。


② サーバーは「用意して送り返す人」

サーバーというと巨大な機械を想像するかもしれませんが、これは役割の名前です。「お願いを受けて、何かを返すコンピューター」のことを、そう呼んでいるだけです。

サーバーの返し方には、大きく2種類あります。

A. あらかじめ作っておいたものを、そのまま返す(静的) 出来合いのお弁当を棚から取って渡すイメージです。誰が来ても同じものが返ります。速くて安上がりです。

B. お願いを見てから、その場で作って返す(動的) 注文を聞いてから調理するイメージです。「ログインしている人の名前を表示する」「その人の買い物カゴを見せる」など、人によって中身が変わる場合はこちらが必要です。

嫁子: この講座の最終目標は、Bを自分で作れるようになること。

ちなみにあなたが今読んでいるこのサイトはAの静的だよ。記事は全部あらかじめ作ってあって、誰が来ても同じものが返る。だから速いし、維持費もほぼかからない。

ただ、動的なほうが偉いわけじゃないからね。必要ないのに動的にすると、遅くて高くて壊れやすいだけ。そこは後で詳しくやるよ。


③ HTTPは「やりとりのルール」

ブラウザとサーバーは、勝手な形式で話しかけても通じません。「お願いの書き方」と「返し方」に共通のルールが要ります。それが HTTP です。

送り状にあたる部分には、たとえばこういうことが書かれています。

最後の「結果」でよく見るのが、あの数字です。

数字 意味 よく見る場面
200 成功。ちゃんと返せた 普通にページが開いたとき
404 見つからない URLを打ち間違えたとき
500 サーバー側で問題が起きた 作った本人のミスであることが多い

嫁子: httpss は「安全(secure)」の s。やりとりの中身が暗号化されているという意味だよ。

これが無い http のままだと、途中で中身を覗かれる可能性がある。ログインのパスワードとかを扱うサイトで https じゃなかったら、それは避けたほうがいい。今はほぼ全部 https だけどね。


今回のまとめ


次にやること

次回は、実際に手を動かす準備をします。VS Code(コードを書くアプリ)と Node.js(コードを動かす仕組み)を入れて、真っ黒な画面(ターミナル)に初めて文字を打ちます。

今回の宿題:いま使っているブラウザで、どこでもいいのでページを開いて、アドレスバーの https の部分を見てください。それが今日話した「安全なやりとりのルールを使っています」という印です。

嫁子: あと、404ページをわざと出してみるのもおすすめだよ。このサイトのURLの後ろに適当な文字を足してEnterしてみて。「見つからない」が返ってくるのが体験できるから。

用語って、読むだけだと入らないんだよね。一度でも自分の目で起こすと、急に自分のものになる。