Webの仕組み

Webの仕組み

執筆済 ソフトウェア開発Web

URL を入力してから画面が出るまで。

1. [[ソフトウェア開発/ネットワーク/DNS|DNS]] で名前を IP アドレスに変換する
2. [[ソフトウェア開発/ネットワーク/TCP|TCP]] 接続を確立する(3-way handshake)
3. TLS ハンドシェイクで暗号化する(HTTPS)
4. HTTP リクエストを送る
5. サーバが応答を返す
6. [[ソフトウェア開発/Web/ブラウザ|ブラウザ]]が HTML を解析する
7. CSS・JS・画像を追加で取得する
8. レイアウトして描画する

クライアント・サーバ#

役割
クライアント 要求する。ブラウザ、アプリ
サーバ 応答する

サーバから勝手に送りつけることはできないのが原則。 これを乗り越えるのが WebSocket や Server-Sent Events。

ステートレス#

HTTP は前の要求を覚えていない

利点 帰結
サーバを増やしやすい どのサーバが応答してもよい
障害に強い 途中で落ちても影響が限定的
単純 状態の同期が要らない

その代わり「ログイン中」といった状態を保つには、 Cookie などで 毎回の要求に情報を添える必要がある。

スケールしやすさは、この設計判断から来ている。

何が遅いか#

要因 おおよそ
DNS 解決 20〜120 ms
TCP 接続 1 往復
TLS 1〜2 往復
応答の生成 サーバ次第
描画をブロックする資源 CSS、同期 JS

往復(RTT)の回数が効くので、 HTTP/2 の多重化、HTTP/3 の 0-RTT、 CDN による距離短縮が 性能改善の主要な手段になる。

参考文献#

ノート一覧を閉じる