この記事の内容は、ブラウザに URL を入力して http リクエストを開始するまでの具体的なプロセスに関するものです。必要な方は参考にしていただければ幸いです。
ユーザー入力 URL
ユーザーが URL を入力すると、このプロセス中にオペレーティング システムが入力イベントをブラウザーに渡します。たとえば、Chrome は過去の統計に基づいて、入力された文字に対応する Web サイトを推定します。たとえば、「goog」と入力すると、90% の確率で「www.google.com」にアクセスすることがわかります。以前の履歴に基づいているため、TCP 接続が開始され、車両の直前でレンダリングが開始された後に返されます。
次に、URL を入力して Enter をクリックします。このとき、ブラウザは URL を確認し、http である場合は Web に従って処理されます。
セキュリティ チェックが完了すると、ブラウザ カーネルは最初にキャッシュをチェックし、次に UA およびその他の HTTP 情報を設定して、さまざまなプラットフォームでネットワーク リクエスト メソッドを呼び出します。
注:
ブラウザとブラウザ カーネルは異なる概念です。ブラウザは Chrome と Firefox を指しますが、ブラウザ カーネルは Blink と Gecko を指します。これはレンダリングのみを担当します。 GUI やネットワーク接続などのクロスプラットフォームの作業は、ブラウザによって実装されます。
DNS 経由で IP をクエリします。
ソケット経由でデータを送信します
DNS (英語では Domain Name System、中国語では Domain Name System) は、ドメイン名と IP アドレスを相互にマッピングする分散データベースです。前提 ユーザーがブラウザに www.google.com と入力すると、おおよそのプロセスは次のようになります。
入力がドメイン名である場合、ドメイン名を IP に解決するために DNS クエリが必要です。 ##DNS クエリを実行する ホストまたはソフトウェアは DNS リゾルバーと呼ばれ、ユーザーが使用するワークステーションまたはコンピューターはリゾルバーです。ドメイン名解決は、DNS リゾルバーを使用して、対応する IP を取得するプロセスです。リゾルバーは、処理のためにドメイン ネーム サーバーにクエリを実行します。
主なプロセスは次のとおりです:
ブラウザ キャッシュからドメイン名 www.google.com の IP アドレスを検索します
ブラウザのキャッシュで見つからない場合は、オペレーティング システムのキャッシュで検索します。この手順では、ローカル ホストも検索して、対応するドメイン名マッピングがあるかどうかを確認します (もちろん、マッピングされています)。システム DNS キャッシュにキャッシュされます)
システム内に見つからない場合は、ルーターにアクセスして見つけてください。通常、ルーターには独自の DNS キャッシュがあるためです。
上記のいずれも見つからない場合は、DNS ドメイン ネーム サーバーへのクエリを続行します。
ユーザーのコンピュータのリゾルバが LDNS へのドメイン名解決要求を開始します。 (つまり、ローカル DNS、インターネット サービス プロバイダー ISP) www.google.com の IP アドレスをクエリします。これは再帰的な検索プロセスです。
キャッシュがヒットしない場合、LDNS はwww.google.com の IP アドレスのルート ドメイン ネーム サーバー、LDNS クエリ このプロセスは反復クエリ プロセスです
ルートは LDNS に、対応する IP がわからないことを伝えますwww.google.com ですが、com ドメインの認証サーバーに問い合わせることができることはわかっています。このドメインは彼が管理するものです。
LDNS は com の認証サーバーに対応する IP アドレスを問い合わせます。 www.google.com
#com は LDNS に、www .google.com に対応する IP はわかりませんが、google.com ドメインの認証サーバーに問い合わせることができることを示します。このドメインは彼によって管理されています。
LDNS は google.com www.com に対応する IP アドレスを要求します。 #google.com は独自の ZONE ファイル (ゾーン ファイル レコードとも呼ばれる) をクエリし、www.google.com に対応する IP アドレスを見つけて LDNS に返します
LDNS はレコードをキャッシュします
注
,そしてDNS 解決には非常に時間がかかるため、解決するドメイン名が多すぎると、最初の画面の読み込みが遅くなりすぎることを知っておく必要があります。DNS プリフェッチの最適化
http は本質的には tcp プロトコルです。
TCP は、コネクション指向のトランスポート層プロトコルです。これにより、両端 (送信側と受信側) の通信ホスト間の通信が到達可能であることが保証されます。伝送中のパケット損失や伝送障害などの異常事態に対処できるほか、ブロードバンドを効果的に利用してネットワークの混雑を緩和します。
TCP 接続を確立するには、最初に 3 つのハンドシェイクが必要です。
注意
ブラウザには同じドメイン名に対する接続数に制限があり、ほとんどの場合は 6 です。http1.0 では、多くの場合、1 つのリソースのダウンロードが tcp/ に対応する必要があります。 ip リクエストですが、HTTP 2.0 に似ています。このプロトコルはデータの送信に 1 つの TCP 接続のみを使用しますが、パフォーマンスは向上しており、リクエストの優先順位も実装できます。
以上がブラウザへの URL の入力から http リクエストの開始までの具体的なプロセスの紹介。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。