0

タイトルは少しわかりにくいかもしれませんが、簡単に説明したり、違う方法で説明したりする方法がわかりません。現在、C# でローカル プロキシ サーバーを作成しています。ブラウザによって開始され、プロキシによってリダイレクトされた HTTP リクエストが、対応する Web サーバーによって応答されると、一連の新しい HTTP リクエストがブラウザによって起動されます (ブラウザがどのように知っているか、何をリロードするか、およびこれがどのように機能するか教えてください) 写真など。私が知る必要があるのは、リロードされたオブジェクトごとに DNS 要求を開始する必要があるのか​​、それとも最初の HTTP 要求から IP アドレスを使用できるのかということです。

よろしく、トーマス

4

1 に答える 1

0

ウィキペディアから:

DNS 解決プロセスは、応答後の一定期間 DNS 要求レコードをキャッシュすることにより、個々のサーバーの負荷を軽減します。これには、アップストリームで新しいリクエストを開始する代わりに、ローカルでの記録とその後のコピーの参照が必要です。リゾルバが DNS 応答をキャッシュする時間は、すべてのレコードに関連付けられた存続時間 (TTL) と呼ばれる値によって決定されます。TTL は、正式な応答を配布する DNS サーバーの管理者によって設定されます。有効期間は、数秒から数日、さらには数週間までさまざまです。

そのため、TTL がまだ期限切れになっていない間は、新しい DNS ルックアップを実行せずに、解決された IP アドレスを再利用できます。TTL が期限切れになったら、新しい DNS ルックアップを実行する必要があります。

Dns クラスは、IP アドレスに関連付けられた TTL を公開しません。また、IP アドレスをキャッシュするかどうかもわかりません。たとえば、Wireshark を使用してトラフィックを調べることで、キャッシングを実行しているかどうかを確認できます。その場合は、毎回Dns クラスメソッドを呼び出すだけです。そうでない場合は、独自の DNS クライアントを実装するか、不平を言って毎回Dns クラスメソッドを呼び出します。

于 2012-11-19T11:49:14.977 に答える