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

标签 c proxy web dns

我正在开发一个网络代理。其逻辑是客户端向代理发送请求,代理向服务器发送相同的请求,然后将答案发送回客户端。 例如,我想访问www.baidu.com。我在GET:包中获取“Host:www.baidu.com”,该包用于发送dns请求,然后我获取“www.baidu.com”的ip,在代理和服务器之间建立套接字。 问题是,当我使用wireshark捕获不使用代理的正常包时,我发现除了查询www.baidu.com之外,还有更多访问“www.baidu.com”的dns请求查询。它会在不同的套接字中查询 nsclick.baidu.com 和 suggest.baidu.com。但是没有信号让我发起这些 DNS 查询,不像查询“www.baidu.com”,我可以在其中发起这些 DNS 查询当我检测到“主机:”时。有人能帮我吗 ?谢谢你。

最佳答案

这可能不是首先应有的工作方式。

想象一下,我在浏览器中访问了 www.baidu.com,它通过您的代理发送流量。目前,对于您的代理,www.baidu.com 是唯一需要查找的内容。

当我的浏览器最终收到此请求的 html block 时,收到 html/js 代码,然后加载来自 nsclick.baidu.com 的一些图像的请求。类似地,可以请求其他资源(css、js、图像)。反过来,他们都会再次通过您的代理,然后您将执行通常的 DNS 查询。

关于c - 一个网页请求中的多个 DNS 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10152089/

相关文章:

r - 如何在 R 中使用 Torocks5 getURL

android - 无需root手机即可设置WiFi代理

parsing - 维基百科和其他网站如何自动将用户在特定标签之间输入的内容转换为特定类型的链接?

mysql - 将实时网站从一台服务器迁移到另一台服务器的完整步骤列表

c - 使用 Intel IPP 镜像 BGR(24 位)图像

c - 这些 C 程序中的位域是如何工作的?

java - Spring 作用域代理bean

c++ - C++ 什么时候从内存中删除变量?

检查两个系统之间的 (USB) 连接中的位错误(对于游戏)

HTML/CSS Image Rollover/Animation,现有代码的具体案例,如何更改动画?