【发布时间】:2015-06-28 02:45:53
【问题描述】:
我正在使用 QtWebkit,我想监控在 QtWebKit 中创建的请求。
DNS 名称何时解析为 IP 地址向 Web Server 发出请求?
QtWebKit 还维护(我猜是)解析的 IP 地址的缓存吗?
【问题讨论】:
标签: web dns webkit ip-address qtwebkit
我正在使用 QtWebkit,我想监控在 QtWebKit 中创建的请求。
DNS 名称何时解析为 IP 地址向 Web Server 发出请求?
QtWebKit 还维护(我猜是)解析的 IP 地址的缓存吗?
【问题讨论】:
标签: web dns webkit ip-address qtwebkit
读取DNSPrefetchHelper::lookedUp(1) 中的 cmets,我假设除了正常的 DNS 请求情况 (1) 和 (2) 之外,Qt 还像 (3) 一样预取 DNS
href 上(预期点击和结果导航)等操作上预获取 DNS在 Qt 函数DNSPrefetchHelper::lookedUp(2) 中读取 cmets,我假设 Qt 只缓存非常少量的 DNS 结果。它主要依靠操作系统来缓存 DNS 结果。我也觉得这是处理 dns 缓存的最佳方式,即使您碰巧实现了一个。当应用程序尝试维护 dns 缓存时,在何时刷新 dns 缓存与准确结果之间做出性能决定会令人困惑。
在操作系统无法缓存 dns 结果的不太可能的情况下,Qt 期望 ISP 缓存它。
void lookedUp(const QHostInfo&) { // we do not cache the result, we throw it away. // we currently rely on the OS to cache the results. If it does not do that // then at least the ISP nameserver did it. // Since Qt 4.6.3, Qt also has a small DNS cache. DNSResolveQueue::shared().decrementRequestCount(); }
【讨论】: