Curl/LibCurl和重试的默认DNS解析行为、超时和重试间隔
我想知道Curl/LibCurl与真实浏览器(如chrome)相比的默认DNS解析行为,以及它在多大程度上依赖于操作系统和递归解析器? -还想知道是否有手动页面中提到的重试,比如每次5秒,2次重试Curl/LibCurl和重试的默认DNS解析行为、超时和重试间隔,curl,libcurl,Curl,Libcurl,我想知道Curl/LibCurl与真实浏览器(如chrome)相比的默认DNS解析行为,以及它在多大程度上依赖于操作系统和递归解析器? -还想知道是否有手动页面中提到的重试,比如每次5秒,2次重试 有没有办法在机器上检查或在curl实用程序本身中检查DNS解析超时逻辑 Chrome不断改进处理DNS解析的逻辑。是否有关于最近的白皮书 与chrome一样,它可以在9秒内进行5次查询、4次重试,从现在起,保持300毫秒的间隔,最多可以进行15次重试。首先,让事情复杂化的是,libcurl有几种方
- 有没有办法在机器上检查或在curl实用程序本身中检查DNS解析超时逻辑
- Chrome不断改进处理DNS解析的逻辑。是否有关于最近的白皮书
与chrome一样,它可以在9秒内进行5次查询、4次重试,从现在起,保持300毫秒的间隔,最多可以进行15次重试。首先,让事情复杂化的是,libcurl有几种方法可以进行名称解析。首先,您可以构建libcurl来使用不同的解析器后端-大多数系统的默认配置是“线程解析器”,但也有“同步”库存解析器和c-ares后端。然后,在最近的libcurl版本中,您还可以选择让它通过HTTPS使用DNS到指定的服务器 但是关注默认方法,线程化方法,当需要解析名称时,它将启动一个helper线程,该线程只需调用
getaddrinfo()
并等待响应。这个函数通常是由libcurl运行的各种平台上的libc/OS提供的,它的行为在某种程度上也受libcurl的控制,现在它往往是经过精心设计和完善的代码
然而,Chrome在某些平台上使用自己的名称解析代码,在某些平台上使用本机(getaddrinfo)解析程序函数(我被告知)。不幸的是,我缺乏更多关于这方面的知识