在QtWebKit中完成DNS解析?

时间:2015-04-21 05:34:30

标签: web dns webkit ip-address qtwebkit

我正在使用QtWebkit,我想监视在QtWebKit中创建的请求。

当DNS名称解析为IP地址以向Web服务器发出请求时?

还有QtWebKit维护(我猜是的)已解析IP地址的缓存吗?

1 个答案:

答案 0 :(得分:0)

  • DNSPrefetchHelper::lookedUp1)中阅读评论,我假设除了正常的DNS请求案例(1)和(2)之外,Qt还采用预取DNS,如(3)中所示

    1. 为页面导航请求进行的正常DNS查找
    2. 在html解析期间(对于内部JS / CSS / IMG,如资源文件)
    3. 预先获取有关用户鼠标在href上的操作的DNS(预期点击和生成的导航)
  • 在Qt函数DNSPrefetchHelper::lookedUp2)中读取注释,我假设Qt只缓存了非常少量的DNS结果。它主要依靠OS来缓存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();
}

相关文件是(a)(b)(c