文字列形式ではなく Web サイトの IP を入力した場合、ローカル DNS サーバーはこれを理解し、DNS プロセスをバイパスしますか?

文字列形式ではなく Web サイトの IP を入力した場合、ローカル DNS サーバーはこれを理解し、DNS プロセスをバイパスしますか?

これは純粋に好奇心からです。しかし、Web サイトの IP を入力した場合、リクエストは依然として前方参照プロセスを経由するのでしょうか? そうでない場合、どの時点で、どのステップで、これが IP による場所であり、文字列としてのホスト名ではないことが認識されるのでしょうか?

また、これはホストファイルにどのように記録されるのでしょうか? ルックアップ プロセス全体を実行すると、ホストファイルにはホスト名の文字列と IP が含まれ、ローカルに入力されるのでしょうか?

答え1

IP アドレスを使用すると、OS はそれが IP アドレスであることをすぐに認識し、前方参照を実行しません。

HTTP リクエストを実行する場合、最初のステップは、ブラウザがサーバーと通信できるように、宛先の IP アドレスを取得することです。サーバーとの通信では、IP アドレスから IP アドレスまですべてが IP 経由で行われるため、この通信にはサーバー名は必要ありません。ただし、Host:複数のサイトをホストしている Web サーバーに、どの Web サイトにアクセスしようとしているのかを知らせるために、サーバー名は HTTP ヘッダーにヘッダーとして渡されます。

IP アドレスでアクセスした場合は、このようなことは起こらず、デフォルトのサイトが表示されます。

ファイルhostsは静的ファイルなので、直接編集した場合 (またはスクリプトやアプリケーションで変更した場合) を除き、どのようなアクションを実行しても変更されません。

答え2

他の人が書いているように、IP アドレスを使用すると、DNS をスキップして、たとえばホスト名なしで開発サイトにアクセスできるようになります。

開発サイトでは、IP のモックホスト名を /etc/hosts に追加することが非常に一般的です。IP アドレスを直接使用するのとは異なり、これにより、a) DNS がスキップされ、b) ブラウザーがHostHTTP リクエストにリクエスト ヘッダーを追加して、たとえばローカル サーバー上の仮想ホストを許可します。

関連情報