标题可能有点令人困惑,但我不知道如何解释更容易或不同。我正在用C#编写本地代理服务器。当浏览器启动并由代理重定向的HTTP请求由相应的Web服务器应答时,浏览器会启动一堆新的HTTP请求(你能告诉我浏览器如何知道,重新加载什么,以及它是如何工作的)例如图片。我需要知道的是:我是否必须为每个重新加载的对象启动DNS请求,或者是否可以使用第一个HTTP请求中的IP地址?
Greets,Thomas
答案 0 :(得分:0)
来自Wikipedia:
DNS解析过程通过在响应后的一段时间内缓存DNS请求记录来减少单个服务器上的负载。这需要本地记录和随后的副本协商,而不是在上游发起新的请求。解析器缓存DNS响应的时间由与每个记录关联的称为生存时间(TTL)的值确定。 TTL由DNS服务器的管理员设置,分发权威响应。有效期可能从几秒到几天甚至几周不等。
因此,虽然TTL尚未过期,但您可以重复使用已解析的IP地址,而无需执行新的DNS查找。当TTL过期时,您需要执行新的DNS查找。
Dns Class不会公开与IP地址关联的TTL,我不确定它是否缓存了IP地址。您可以检查它是否执行缓存,例如,通过使用Wireshark查看流量。如果是,请每次调用Dns Class方法。如果没有,请实施您自己的DNS客户端或发牢骚并每次调用Dns Class方法。