ホームページ  >  記事  >  ブラウザがアドレスを入力すると何が起こるか

ブラウザがアドレスを入力すると何が起こるか

angryTom
angryTomオリジナル
2019-10-24 17:24:4412554ブラウズ

ブラウザがアドレスを入力すると何が起こるか

ブラウザにアドレスを入力すると何が起こるか##​​

#ブラウザはインターネットを閲覧するためのツールです。私たちは通常、ビデオを見たり、情報を確認する インターネット サーフィンはインターネット サーフィンとは切り離せないものですが、ブラウザのアドレス バーで Enter キーを押した後にブラウザが何をするかご存知ですか? 今日は、ブラウザの背後で行われている動作について説明します。

ステップ 1: ブラウザにドメイン名を入力します。

たとえば、www.php.cn

ブラウザがアドレスを入力すると何が起こるか と入力します。

ステップ 2: ブラウザはドメイン名の IP アドレスを検索します。

ブラウザは入力されたドメイン名を解析して次のようにします。プロセスは次のとおりです:

1. ブラウザのキャッシュを検索します: 一般にブラウザは DNS レコードを一定期間キャッシュするため、ブラウザによって時間が異なる場合があり、通常は 2 ~ 30 分の範囲になります。ブラウザはこれらのキャッシュを検索し、キャッシュがある場合は IP を直接返し、キャッシュがない場合は次のステップに進みます。

2. システム キャッシュを検索する: IP がブラウザ キャッシュで見つからない場合、ブラウザはシステム コール (Windows では gethostbyname) を実行して、ローカル マシンの hosts ファイルを検索します。 IP は直接返されます。そうでない場合は、次のステップに進みます。

3. ルーター キャッシュを検索します: 手順 1 と 2 のクエリが失敗した場合は、ネットワークを使用する必要があります。通常、ルーターには独自の DNS キャッシュがあります。前のリクエストをルーターに送信して、ISP を見つけます。サービス プロバイダーのキャッシュ DNS サーバーでは、IP が見つかった場合は直接返され、見つからない場合は検索を続けます。

4. 再帰クエリ: 上記の手順が見つからない場合、ISP の DNS サーバーは再帰クエリを実行します。いわゆる再帰クエリとは、ホストによってクエリされたローカル ドメイン ネーム サーバーが認識できない場合に、クエリされたドメイン名の IP アドレスを指定すると、ローカル ドメイン ネーム サーバーは、ホストに次のクエリを独自に実行させるのではなく、DNS クライアントとして他のルート ドメイン ネーム サーバーにクエリ要求メッセージを送信し続けます。 (ローカル ドメイン ネーム サーバーのアドレスは DHPC プロトコルを通じて取得され、DHPC は IP アドレスの割り当てを担当します)

5. 反復クエリ: ローカル ドメイン ネーム サーバーは反復クエリを使用し、最初にルート ドメインをクエリします。ネームサーバー。ローカル ドメイン ネーム サーバーからルート ドメイン ネーム サーバーへのクエリは、通常、反復クエリを使用します。いわゆる反復クエリとは、ルート ドメイン ネーム サーバーがローカル ドメイン ネーム サーバーから送信されたクエリ要求メッセージを受信した後、ローカル ドメイン ネーム サーバーに次にどのドメイン ネーム サーバーにクエリを実行するかを指示し、次にローカル ドメイン名を指示することを意味します。サーバーは後続のクエリを独自に実行します。 (後続のクエリのためにローカル ネーム サーバーを置き換えるのではなく)。

ステップ 3: ブラウザはターゲット サーバーとの TCP 接続を確立します

1. ホスト ブラウザは、DNS 解決を通じてターゲット サーバーの IP アドレスを取得した後、サーバーとの TCP 接続を確立します。 TCP 接続。

2.TCP 3 ウェイ ハンドシェイク接続: ブラウザが配置されているクライアントは、接続要求メッセージをサーバーに送信します (SYN フラグは 1)。メッセージを受信した後、サーバーは接続の確立に同意し、確認メッセージをクライアントに送信します (SYN および ACK フラグ ビットは両方とも 1)。クライアントは確認メッセージを受信した後、確認メッセージが受信されたことを確認するためにサーバーにメッセージを再度送信します。ここでは、クライアントとサーバーが確立され、プロセスが通信を開始します。

ステップ 4: ブラウザは http プロトコル経由でリクエストを送信します。

ブラウザは、ホストへの HTTP-GET メソッド メッセージ リクエストを開始します。リクエストには、アクセスされた URL (http://www.php.cn/、KeepAlive、長時間接続)、および User-Agent ユーザー ブラウザのオペレーティング システム情報、エンコーディングなどが含まれます。 Accept-Encoding 項目と Cookies 項目について言及する価値があります。 Accept-Encoding は通常、圧縮後に gzip を使用して HTML ファイルを送信します。 Cookie に初めてアクセスする場合、サーバーはユーザー キャッシュ情報を確立するように求められます。そうでない場合は、Cookie の対応するキー値を使用して、対応するキャッシュを見つけることができます。キャッシュには、ユーザー名、パスワード、および一部のユーザー設定が保存されます。

ステップ 5: 一部のサービスは永続的なリダイレクト応答を行います

複数のホスト サイトを持つ大規模な Web サイトの場合、負荷分散またはトラフィックのインポートにより SEO ランキングが向上しますが、直接返されないことがよくあります。要求されたページですが、リダイレクトされます。返されたステータス コードは 200OK ではなく、301,302 で始まるリダイレクト コードです。ブラウザがリダイレクト応答を取得した後、応答メッセージの Location 項目でリダイレクト アドレスを見つけ、ブラウザは最初のステップでそのアドレスに再度アクセスできます。 。

リダイレクトの役割: リダイレクトは、SEO ランキングを向上させるために負荷分散またはトラフィックをインポートすることです。フロントエンド サーバーを使用してリクエストを受け入れ、それらを別のホストにロードすると、サイトの同時ビジネス処理能力が大幅に向上します。リダイレクトにより、複数のドメイン名から 1 つのサイトにアクセスが集中することもあります。これは、baidu.com、www.baidu.com が検索エンジンによって 2 つの Web サイトであると見なされ、それぞれへのリンクの数が減り、ランキングが下がります。永続的なリダイレクトによって 2 つのアドレスが関連付けられ、検索エンジンはそれらを同じ Web サイトとみなしてランキングを向上させます。 。

ステップ 6: ブラウザはリダイレクト アドレスを追跡します。

ブラウザがリダイレクト後の最終アクセス アドレスを認識したら、http リクエストを再送信し、コンテンツを送信します。上記と同じです。 。

ステップ 7: サーバーはリクエストを処理します

サーバーは get リクエストを受信し、処理して応答を返します。

ステップ 8: サーバーは HTML 応答を送信します。

ステータス コード 200 OK を返します。これは、サーバーが要求に応答してメッセージを返すことができることを示します。ヘッダーに -type 「text/html」の場合、ブラウザはファイルをダウンロードするのではなく、HTML としてレンダリングします。

ステップ 9: TCP 接続を解放する

1. ブラウザーが配置されているホストは、接続解放メッセージをサーバーに送信し、データの送信を停止します。

## 2. リリース メッセージを受信した後、サーバーは確認メッセージを送信し、その後未送信のデータをサーバーに送信します;

3. サーバーのデータ送信が完了した後、接続を送信しますクライアントへのリリース メッセージ;

4. メッセージを受信した後、クライアントは確認を送信し、一定時間待機してから TCP 接続を解放します;

ステップ 10 : ブラウザはページを表示します

ブラウザがすべての HTML ドキュメントを完全に受け入れていない場合、ブラウザはすでにこのページの表示を開始しています。ブラウザは返されたデータ パケットを受信し、次に従って対応するデータをレンダリングします。ブラウザのレンダリングメカニズム。レンダリングされたデータは、対応するページのレンダリングと足跡のインタラクションを実行します。

ステップ 11: ブラウザは、HTML に埋め込まれた他のコンテンツを送信および取得します。

たとえば、一部のスタイル ファイル、画像 URL、js ファイル URL など、ブラウザはこれらの URL を通じてリクエストを再送信します。リクエスト プロセスは、HTML の読み取り、ドメイン名のクエリ、リクエストの送信、リダイレクトなどと同様のプロセスです。ただし、これらの静的ファイルはブラウザにキャッシュされるため、サーバーを経由せずにキャッシュから直接アクセスされる場合もあります。一部の Web サイトでは、サードパーティの CDN を使用してこれらの静的ファイルをホストしています。

以上がブラウザがアドレスを入力すると何が起こるかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。