标题可能有点混乱,但我不知道如何解释更容易或不同。我现在正在用 C# 编写本地代理服务器。当浏览器启动并由代理重定向的 HTTP 请求由相应的 Web 服务器响应时,浏览器会启动一堆新的 HTTP 请求,(你能告诉我浏览器是如何知道的,要重新加载什么,以及它是如何工作的吗? ) 图片例如。我需要知道的是:我是否必须为每个重新加载的对象启动一个 DNS 请求,或者是否可以使用第一个 HTTP 请求中的 IP 地址?
问候,托马斯
来自维基百科:
DNS 解析过程通过在响应后将 DNS 请求记录缓存一段时间来减少单个服务器的负载。这需要对副本进行本地记录和后续咨询,而不是在上游发起新请求。解析器缓存 DNS 响应的时间由与每条记录关联的称为生存时间 (TTL) 的值确定。TTL 由发出权威响应的 DNS 服务器的管理员设置。有效期可能从几秒钟到几天甚至几周不等。
因此,虽然 TTL 尚未过期,但您可以重复使用已解析的 IP 地址,而无需执行新的 DNS 查找。当 TTL 过期时,您需要执行新的 DNS 查找。
Dns 类不公开与 IP 地址关联的TTL,我不确定它是否缓存了 IP 地址。您可以检查它是否执行缓存,例如,通过使用 Wireshark 查看流量。如果是这样,只需每次调用 Dns 类方法。如果没有,请实现您自己的 DNS 客户端或抱怨并每次调用Dns 类方法。