ホームページ よくある問題 ブラウザがアドレスを入力すると何が起こるか

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

Oct 24, 2019 pm 05:24 PM
ブラウザ

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

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

#ブラウザはインターネットを閲覧するためのツールです。私たちは通常、ビデオを見たり、情報を確認する インターネット サーフィンはインターネット サーフィンとは切り離せないものですが、ブラウザのアドレス バーで 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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CSSを介してサイズ変更シンボルをカスタマイズし、背景色で均一にする方法は? CSSを介してサイズ変更シンボルをカスタマイズし、背景色で均一にする方法は? Apr 05, 2025 pm 02:30 PM

CSSでサイズ変更シンボルをカスタマイズする方法は、背景色で統一されています。毎日の開発では、調整など、ユーザーインターフェイスの詳細をカスタマイズする必要がある状況に遭遇することがよくあります...

Webページにローカルにインストールされている「Jingnan Mai Round Body」を正しく表示するにはどうすればよいですか? Webページにローカルにインストールされている「Jingnan Mai Round Body」を正しく表示するにはどうすればよいですか? Apr 05, 2025 pm 10:33 PM

最近、Webページにローカルにインストールされたフォントファイルを使用して、インターネットから無料のフォントをダウンロードし、システムに正常にインストールしました。今...

カスタムスタイルのシートは、SafariのローカルWebページでバイドゥページでは効果を発揮できないのはなぜですか? カスタムスタイルのシートは、SafariのローカルWebページでバイドゥページでは効果を発揮できないのはなぜですか? Apr 05, 2025 pm 05:15 PM

Safariでカスタムスタイルシートを使用することについてのディスカッション今日は、Safariブラウザ向けのカスタムスタイルシートのアプリケーションに関する質問について説明します。フロントエンド初心者...

フレックスレイアウトの下のテキストは省略されていますが、コンテナは開かれていますか?それを解決する方法は? フレックスレイアウトの下のテキストは省略されていますが、コンテナは開かれていますか?それを解決する方法は? Apr 05, 2025 pm 11:00 PM

フレックスレイアウトとソリューションの下でのテキストの過度の省略によるコンテナの開口部の問題が使用されます...

Webページにローカルにインストールされたフォントファイルを使用する方法は? Webページにローカルにインストールされたフォントファイルを使用する方法は? Apr 05, 2025 pm 10:57 PM

Webページにローカルにインストールされたフォントファイルを使用する方法Webページ開発でこの状況に遭遇しましたか:コンピューターにフォントをインストールしました...

JavaScriptまたはCSSを介してブラウザ印刷設定でページの上部と終了を制御する方法は? JavaScriptまたはCSSを介してブラウザ印刷設定でページの上部と終了を制御する方法は? Apr 05, 2025 pm 10:39 PM

JavaScriptまたはCSSを使用して、ブラウザの印刷設定のページの上部と端を制御する方法。ブラウザの印刷設定には、ディスプレイが...

CSSとFlexBoxを使用して、さまざまな画面サイズで画像とテキストのレスポンシブレイアウトを実装する方法は? CSSとFlexBoxを使用して、さまざまな画面サイズで画像とテキストのレスポンシブレイアウトを実装する方法は? Apr 05, 2025 pm 06:06 PM

CSSを使用してレスポンシブレイアウトを実装して、Webデザインのさまざまな画面サイズの下でレイアウトの変更を実装する場合、CSS ...

エッジブラウザの特定のDIV要素が表示されないのはなぜですか?この問題を解決する方法は? エッジブラウザの特定のDIV要素が表示されないのはなぜですか?この問題を解決する方法は? Apr 05, 2025 pm 08:21 PM

ユーザーエージェントスタイルシートによって引き起こされるディスプレイの問題を解決する方法は? Edgeブラウザを使用する場合、プロジェクトのDIV要素を表示することはできません。チェックした後、私は投稿しました...