[ネットワーク] - ブラウザは、何が起こったのか、すべての後にURLを入力してください?

URLを入力した後、ブラウザは何が起こりましたか?

(これは、しばしばインタビュアーをお願いするインタビューの質問のフィナーレと言われています)

私たちは、ブラウザwww.baidu.comを入力すると、ブラウザはそれから最終ページを表示するにはどのように?全体的に、このセクションでは、2つの部分に分けることができます。

1、通信ネットワーク
2、ページのレンダリング

図1に示すように、通信ネットワーク

インターネット通信各ネットワークデバイスフォローTCP / IPプロトコルは、ネットワーク通信用のTCP / IPプロトコルスイートを使用して、階層順を介して互いに通信します。アプリケーション層、トランスポート層、ネットワーク層、データリンク層:それぞれ階層を降順。パッケージデータの層の後に、図に示すように:
ここに画像を挿入説明
1、入力されたURL、DNSアプリケーション層のブラウザでドメイン名を解決

Www.baidu.comブラウザで入力、ローカルIPアドレスは、対応するIPアドレスが返された場合、要求が高いDNSサーバを発見していない場合は、対応する、またはどこルートを見つけるために知っているかどうかをクライアント最初にチェック

2、アプリケーション層のクライアントは、HTTPリクエストを送信します

HTTPリクエストは、リクエストヘッダリクエストボディリクエストヘッダがリクエストメソッド(GET / POST)が含まれている2つの部分では、ターゲットURL、プロトコルは(HTTP / HTTPS / FTP ...)キャッシュとクッキーを送信する必要があるかどうかの小さな情報のリターンをたどります待機

3、トランスポート層のTCPトランスポートパケット

トランスポート層プロトコルに位置するセグメント管理データパケット内のデータ単位のチャンクに分割され、その数は、正確に便利な情報サーバがパケットを受信し復元することができます。TCP 3ウェイハンドシェイクにより、安全で信頼性の高い輸送を確保します。ここで再び、3ウェイハンドシェイクの下のレビュープロセスという。

第1の送信側は、一定時間内に応答するための受信側と待機のSYNフラグ付きデータパケットを送信します。受信機が要求を受信した後、送信を直ちに同時にSYNフラグと肯定応答ACK応答データパケットと、彼は応答を受信し、前記ハンドシェイクを示し、受信端末のACKフラグを有するデータパケットを再び受信を送受信します成功。送信側が所定時間以内に応答を受信しない場合、このプロセスでは、デフォルトの受信者は、応答が受信されるまで再送信要求を受信しません。

図4に示すように、ネットワーク層プロトコルIPアドレスクエリMAC

AN IPプロトコルは、パッケージが受信側に確かに可能であることを保証するために、受信機にTCPセグメンテーション種々の良いパケットであり、受信機は、MACアドレス、IPアドレスを必要とMACアドレスは、一つの関係であります、ネットワークのIPアドレスが変更される可能性がありますが、MACアドレスは一定です。2つのホストが同じローカルエリアネットワークに、それはトランジットを繰り返すことになるではない場合は、ARPプロトコルは、MACアドレスに対応するIPアドレスに解決することができます

5、データはデータリンク層に到着します

MACアドレスを見つけた後、それは、データリンク層の送信に今回のデータを送信すると、クライアントは、ステージの最後にリクエストを送信します。

6、サーバがデータを受信し、

データリンク層にサービスデータを受信し、アプリケーション層まで、再びアップ層。このプロセスは、断片化されたパケットがトランスポート層にTCPプロトコルを含む元のHTTPリクエストを再構成しました。

7、リクエストに対するサーバの応答

サーバがクライアントのHTTPリクエストを受信した後、リソースがクライアントによって要求された見つけ、応答メッセージを返し、重要なメッセージを含む応答メッセージ- いくつかの一般的なステータスコード 200 OKは、要求が成功したことを示しています。

8、サーバーは、ファイルを返します。

リクエストは「text / htmlの」へのContent-Typeヘッダに起因する、成功したら、サーバーは、対応するHTMLファイルを返します。

9、TCPコネクションの解放

:実際には、接続は、4回のプロセスを振っ解放され
、ホストがサーバに接続解放メッセージを送信し、データの送信を停止し、ブラウザ
サーバーがメッセージのリリース後に確認メッセージを受信し、サーバー上のデータを送信しますが、完全に転送されていません。
サーバーのデータ送信が完了した後、それはクライアントへの接続解放メッセージを送信し、
クライアントがパケットを受信した後、TCPコネクションを解放、確認を送信し、その後、期間の後、

第二に、ページのレンダリング

ブラウザは、すべての完全なHTML文書を受け入れない場合は、ブラウザがパケットをバック受け取り、このページを表示し始めて、ブラウザに応じメカニズムをレンダリング対応するデータをレンダリングしています。レンダリングデータ、対応するページのレンダリングとの相互作用のペース。

ブラウザは、など、いくつかのスタイルファイル、写真のURL、JSファイルのURL、など、HTML内に追加埋め込まれたコンテンツを送信し、ブラウザがこれらのurlで要求を再送信します、要求プロセスはまだHTML同様のプロセス、クエリのドメイン名、送信を読まれます要求のリダイレクト。しかし、これらの静的ファイルはブラウザにキャッシュすることができ、時々キャッシュから直接取って、サーバを介してこれらのファイルにアクセスする必要はありません。いくつかのサイトはまた、これらの静的ファイルをホスティングしているサードパーティのCDNを使用しています。

公開された42元の記事 ウォン称賛13 ビュー1759

おすすめ

転載: blog.csdn.net/Vicky_Cr/article/details/105188929