Genie

学んだ事

ブラウザからURLを開くまでの挙動

ブラウザでURLを開くと何が起きるか。

DNSを通じて、クライアント(ブラウザ)はURLのホスト名を宛先サーバーのIPアドレスに解決する。そして3ウェイハンドシェイクによりTCP接続を確立する。TCP接続の上に、TLSハンドシェイクによってTSL接続を確立し、暗号化されたデータのみがネットワーク上で送信されるようにします。クライアントはHTTPプロトコルを使用して、ヘッダーとリクエスペイロードを含むリクエストを送信先のサーバーに送信します。サーバーは、ステータスコード、ヘッダー、レスポンスペイロードで応答します。

 

1.DNSルックアップ

ブラウザはURLのドメイン名(例えば、www.example.com)をIPアドレスに変換する為にDomain Name System(DNS)が使用されます。

ブラウザはDNSサーバーに問い合わせて、該当するIPアドレスを取得しまう。このプロセスではキャッシングがよく利用される為、既に知られているドメインの場合はこのステップはスキップされることがあります。

2.TCP接続

IPアドレスが分かったら、ブラウザはそのサーバーとの間に信頼できる接続を確立する必要があります。これを3ウェイハンドシェイクを通じて行われます。クライアントはSYN(同期)パケットをサーバーに送信し、サーバーはSYN-ACK(同期確認)パケットで応答し、最後にクライアントはACK(確認)パケットを送信して接続が確立されます。

3.TLSハンドシェイク

安全な通信を確保するために、殆どのウェブサイトではHTTPSを使用します。

これはTLS(Transport Layer Security)プロトコルを使った暗号化が含まれます。

TLSハンドシェイクは、クライアントとサーバー間で暗号化キーを安全に交換するプロセスです。これにより、送受信されるデータの盗聴や改ざんから保護されます。

4.HTTPリクエス

TSL接続が確立されたら、ブラウザはHTTPリクエストを送信します。このリクエストには求めているリソース情報、ブラウザの種類、受け入れている応答の形式など、多くのヘッダーが含まれています。

5.サーバー応答

サーバーはリクエストを受け取り、必要なリソース(HTMLファイル、画像、スタイルシートなど)を探します。見つかったリソースをHTTPレスポンスとしてブラウザに送り返し、ステータスコード(例:200 OK)、レスポンスヘッダー、そしてリクエストされたデータ(通常はHTML文章)が含まれます。

6.コンテンツの表示

ブラウザは受け取ったHTMLを解析し、ページに必要な追加的なリソース(CSSファイス、JavaScriptファイル、画像など)のリクエストを行います。

全てのリソースがロードされると、ブラウザはそれらを組み合わせてページをレンダリング(レンダリングとはHTML,CSS,Javascriptを人間がわかりやすいように生成される事)、ユーザーに表示します。

 

結論.

この一連のプロセスが行われる為、ユーザーはウェブページを見ることができます。

 

ただ近年では