C 一个网页请求中的多个DNS查询

C 一个网页请求中的多个DNS查询,c,proxy,web,dns,C,Proxy,Web,Dns,我正在处理一个web代理。逻辑是客户端向代理发送请求,代理向服务器发送相同的请求,然后将答案发送回客户端。 例如,我想访问www.baidu.com。我在get:包中得到Host:www.baidu.com,用于发送dns请求,然后我得到www.baidu.com的ip,在代理和服务器之间建立套接字。 问题是,当我使用wireshark捕获不带代理的正常包时,我发现访问www.baidu.com的dns请求查询比访问www.baidu.com的查询多。它将在不同的套接字中查询nsclick.ba

我正在处理一个web代理。逻辑是客户端向代理发送请求,代理向服务器发送相同的请求,然后将答案发送回客户端。 例如,我想访问www.baidu.com。我在get:包中得到Host:www.baidu.com,用于发送dns请求,然后我得到www.baidu.com的ip,在代理和服务器之间建立套接字。
问题是,当我使用wireshark捕获不带代理的正常包时,我发现访问www.baidu.com的dns请求查询比访问www.baidu.com的查询多。它将在不同的套接字中查询nsclick.baidu.com和suggestion.baidu.com。但没有信号让我启动这些DNS查询,不像查询www.baidu.com那样,在www.baidu.com中,我可以在检测到主机时启动它:。有人能帮我吗?谢谢你。

这可能不是一开始就应该这样做的

想象一下,我在浏览器中点击了www.baidu.com,它通过你的代理发送流量。对于你目前的代理,www.baidu.com是唯一可以查找的东西


当我的浏览器收到这个请求的html块时,收到的html/js代码会加载来自nsclick.baidu.com的一些图像请求。同样,也可以请求其他资源css、js和图像。反过来,他们都会再次通过您的代理,然后他们的主机将执行您通常的dns查询。

我理解。我会检查这一点,并添加一些检测这些新地址的测试。我认为OP希望提前知道所需的主机名,以预查询/预缓存它们。每个这样的dns查询也是多个单独的GET请求