我使用strace命令来分析curl和wget的底层实现过程(主要是DNS域名解析部分),并得出以下结论 . 我还是不明白细节,请指正 . 谢谢!

具体测试命令:

strace curl -v web.test.zone
strace wget web.test.zone

我的观点:

  • curl是通过libcurl跨平台库实现的,暂时不了解curl通过什么方法或定期获取IP地址,但是从strace的结果来看,它不遵循Bind DNS轮询IP地址来实现请求数据 .

  • 相对于curl,一个wget请求,它花了很多时间在域名解析上,在找到没有结果的hosts文件的情况下,通过类似的挖掘方式获取所有的ip地址并选择一个来请求数据,多次测试,结果是使用不同的A记录IP地址来请求数据 .