ページ表示のURLからの入力を処理するために、ネットワークインフラストラクチャブラウザ

序文

分析、ブラウザのページを表示するには、ブラウザから最終入力するURLを入力し、私たちは分析するには、以下の4つの側面に分けることができます(私の意見では、これは実際にHTTPトラフィックの拡張版である、それはクライアントを有効にするためのメカニズムの数を増加させましたそして、サーバは、迅速かつ容易にデータ伝送を確保することができます)

  1. どのブラウザが要求を送信します
  2. サーバにパケットを要求する方法
  3. どのブラウザがサーバから返されたコンテンツを受信
  4. ブラウザはサーバから返されたコンテンツを解析する方法

私は、ブラウザのページ表示から、最終的な入力にURLを入力し、その後、我々はどのような技術で最後にブラウザを把握することができ、限り、これらの4つの側面を見つけると、考えます

どのブラウザが要求を送信します

プレスへのブラウザからURL入力、ENTER、それは要求パケットを送信します。ここでは、www.baidu.comを入力する必要が

ブラウザが要求メッセージを送信する前に、httpプロトコルまたはhttpsの使用を使用して決定されます。(HTTPSプロトコルを使用するようにブラウザを強制的に要求パケットを受信したときもちろん、いくつかのサーバー)合意は、直接ドメイン名またはIPアドレス、デフォルトのHTTPプロトコルを入力しない場合

https = http + ssl
为什么会提出http协议:主要是因为http本身不安全,因此需要添加一些机制来保证http传输的安全
ssl的全称是Secure Sockets Layer(安全套接层) 是为网络通信提供安全及数据完整性的一种安全协议
在http中添加ssl机制一般就能保证数据传输的安全

これは、入力www.baidu.com要求パケットヘッダであります

入力要求パケットヘッダを百度

ここでは、リクエストメソッド要求メッセージは、getメソッドであることを知ることができる、HTTPバージョン1.1バージョン、ホスト名www.baidu.com(一般的に、我々はリクエストメソッドを送信するには、ブラウザのURLを経由してパケットの入力を要求GETです) 。

しかし、我々はそのHTTP通信がIPプロトコルを介して送信され、ドメイン名を介して送信することができないので、対応するIPにドメイン名について話をする必要が知っている必要があります。

この段階で、私たちは私たちのドメイン名が対応するIPに変換するために、DNSドメイン名解決サービスを必要としています。

ブラウザは、その後、IPサーバー要求に再送信します

ここでは、いくつかの結論第一歩作ります

1. 输入url后,判断是域名还是ip,如果是域名则请求DNS服务器获取域名对应的IP地址
2. 得到服务端的ip地址后,向服务端发送请求报文

サーバにパケットを要求する方法

[OK]を、単にブラウザの最初のステップは、サーバーに要求メッセージを送信した、次のステップは、サービス要求メッセージは、最後に到達するためにどのように話をしています

ここで、IPプロトコル要求パケットは、対応するサーバに送信することができる可能にするために必要です

常にHTTPヘッダフィールドの要求メッセージの際、最終的にネットワークセグメントサーバへ、そして最終的にサーバにジャンプの種々介してIPプロトコルルータおよびゲートウェイ

サービスは、ブラウザによって送信された要求メッセージを受信し、ブラウザの位置を知ることができ、それはTCP接続とブラウザをすることができ

TCPトランスポート層プロトコルは、我々は、データの送信かのように、TCPプロトコルを介したデータの伝送のために、TCP接続を確立するために、ブラウザとサーバーで、はっきり言って(位置しており、その主な機能は、信頼性の高いバイトストリームのサービスを提供することを目的とします制御することはできません)

ここでは、TCP接続が可能になるスリーウェイハンドシェイクを、目的は、データを送受信するために、ブラウザとサーバーの能力を決定することです。

接続と切断は、この記事を読むことができます確立する上でTCP:ネットワークインフラのtcp 4回と3ウェイハンドシェイクを振りました

いくつかの要約を行うには、ここで第二のステップ

1. 请求报文根据IP协议会被传输到服务端
2. 服务端接收到了请求报文后就知道浏览器的网络地址
3. 浏览器与服务端通过TCP三次握手建立连接

どのブラウザがサーバから返されたコンテンツを受信

次に、ブラウザとサーバーの正常に確立されたTCP接続は、(ブラウザからのパケットを送信するサーバーを取得することができますされレスポンスを)返されたコンテンツ要求パケットに基づいてサーバを得ることが可能です

ブラウザはサーバから返されたコンテンツを解析する方法

ブラウザは、応答メッセージを解析し、その所望のデータを取得します

ここでは、URLのHTMLコンテンツを入力して、ブラウザは一般的に取得している(いくつか入力した後、URLへのダウンロードリンクを取得し、ローカルのダウンロードを開始します)

次のタスクは、このHTMLコンテンツを解決することです

パースのHTMLコンテンツは、我々は次の側面から理解することができます

  1. htmlコード自体
  2. リソース(CSS、JS、IMG、...)HTMLはで導入されます

また、我々は一般的なブラウザを知っておく必要がありますすることに責任がある構文解析HTMLコンテンツのブラウザのレンダリングエンジン(とも呼ばれるUIエンジン)

次に、我々は、構文解析のhtmlの内容を分析し始めました

  1. トップダウンからHTMLコンテンツを解析するプロセスを開始するには、ブラウザのレンダリングエンジンは、意志の解析HTMLコンテンツ

  2. あなたはそれらのリソースを導入する必要があることが判明した場合、その直後にすぐにネットワークからリソースを要求HTMLレンダリングエンジンに通知

  3. HTMLコードは、DOMツリーに解析され、CSSのCSSルールに解析して、レンダリングツリーの両方を形成するために結合されます

  4. +ページのレイアウトを描画を開始するためにツリーをレンダリングし、最終的にページ上に表示

  5. ただ、上記の手順を生成するときに木がありそうなページを描かれたとされ、レンダリング、第2工程を行う前に待つより行うための最初のステップである、直線的ではなかったです

  6. しかし、時にはいくつかのCSSとJavaScriptのルールのいくつかの構文は、ツリーが変更されますレンダリング対応し、DOMツリーとCSSルールを変更し、この時間は、ページは次のようになります再描画逆流

  7. 最後に、すべての作業が完了すると、ページがブラウザに表示されます

深いブラウザのページレンダリングの原則は、次の資料を参照してください。

  1. ブラウザの作品:最新のWebブラウザの舞台裏
  2. ブラウザのページレンダリング原理(ページの再描画や関連コンテンツを返します)

概要

最後に、フローチャートをブラウザから入力されたURLを締結する(ブック「HTTPを示している」から)図ボロー1ページを表示しました

ここに画像を挿入説明
送信処理では、ネットワークプロトコルは、以下のものが関与しました

  1. 伝送を担当するIPプロトコル(ネットワーク層)
  2. 信頼性を確保するためにTCPプロトコル(トランスポート層)
  3. ドメイン名解決の提供DNSサービス(アプリケーション層)
公開された26元の記事 ウォンの賞賛1 ビュー1188

おすすめ

転載: blog.csdn.net/bleeding_sky/article/details/104566106