短い答え
- まず DNS でドメイン名を IP アドレスに変え、そのサーバーと TCP でつなぎ、HTTPS なら TLS で暗号の取り決めをします (HTTP/3 では TCP の代わりに QUIC を使います)。
- つながったら HTTP のリクエストを送り、サーバーが HTML を返します。
- ブラウザは HTML を読みながら CSS や JavaScript、画像を取りに行き、画面を組み立てて描きます。
深掘りの答え
順に 4 つの段に分けると、話が迷子になりません。
- 名前を住所に変える (DNS) ブラウザや OS に覚えがあればそれを使い、無ければ DNS のサーバーに問い合わせて IP アドレスを得ます
- つなぐ (TCP と TLS) 3 回のやり取り (3-way ハンドシェイク) でつなぎ、HTTPS では続けて証明書を確かめ、暗号の鍵を決めます。HTTP/3 では TCP の代わりに UDP の上の QUIC を使い、つなぐことと暗号の取り決めを一緒に済ませます
- 頼んで受け取る (HTTP)
GET /のようなリクエストを送り、ステータスコード (200 など) と HTML が返ります - 描く (レンダリング) HTML から DOM、CSS から見た目の規則を作って重ね、配置を計算して描きます。JavaScript が DOM を書き換えれば描き直します
時間に余裕があれば、速くする工夫を 1 つ添えると評価が上がります。たとえば、CDN で利用者の近くから返す、画像を遅れて読む、キャッシュで 2 回目の通信を省く、などです。
面接官が見ている点
- 段を飛ばさず、順番どおりに話せるか。特に DNS と HTTP の間にある「つなぐ」段を落とさないか
- 用語を自分の言葉で言い換えられるか。暗記した言葉を並べるだけでは、次の深掘りの問いで詰まります
- 自分が作った物とつなげられるか。「自分のサイトが遅かったとき、どの段を疑うか」まで話せると強い答えになります
