我正在使用QtWebkit,我想监视在QtWebKit中创建的请求。
当DNS名称解析为IP地址以向Web服务器发出请求时?
还有QtWebKit维护(我猜是的)已解析IP地址的缓存吗?
答案 0 :(得分:0)
在DNSPrefetchHelper::lookedUp
(1)中阅读评论,我假设除了正常的DNS请求案例(1)和(2)之外,Qt还采用预取DNS,如(3)中所示
href
上的操作的DNS(预期点击和生成的导航)在Qt函数DNSPrefetchHelper::lookedUp
(2)中读取注释,我假设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(); }