一般的なwebページをブラウザで表示するまでの流れをかなり大雑把にメモ
流れ
- HTTPリクエスト
- HTTPレスポンス
- 返ってきたHTMLの評価
- レンダーツリーの構築と描画
HTTPリクエスト
DNSルックアップ
アクセスしようとしているURLに含まれるドメイン名からアクセスすべきホストのIPアドレスを取得します
http://hoge.com
↓
◯◯.◯◯.◯◯.◯◯
TCP接続の確立
3ウェイハンドシェイクと呼ばれる手法でTCP接続を確立させます
通信の信頼性を担保する必要があるため、この手続きが発生します
HTTPリクエスト
TCP接続が確立したら、データをHTTPリクエストとして送信します
GET / HTTP/1.1
Host: hoge.com
HTTPレスポンス
サーバーへとHTTPリクエストを送信したら、それに応じたレスポンスが返ってきます
静的なHTMLを返す場合もあれば、サーバーサイドでHTMLを動的に生成して、返す場合もあります。
返ってきたHTMLの評価
サーバーからHTMLを取得すると、ブラウザでDOMが構築されます
linkタグ、imgタグ、scriptタグなどのサブリソースがあれば順次HTTPリクエストが発生します
画像、CSS、JavaScriptなどもこのタイミングでロードされます
レンダーツリーの構築と描画
サブリソースのロードが終わるといよいよ描画計算をします
DOMとCSSのスタイル情報をもとに、描画すべき要素の視覚情報を計算します
画像などはデータをビットマップデータにデコードして描画処理に回されます