CURLOPT_DNS_USE_GLOBAL_CACHE 启用时会启用一个全局的DNS缓存,此项为线程安全的,并且默认启用。
CURLOPT_DNS_CACHE_TIMEOUT 设置在内存中保存DNS信息的时间,默认为120秒。

1)fopen/file_get_contents 每次请求远程URL中的数据都会重新做DNS查询,并不对DNS信息进行缓存。但是CURL会自动对DNS信息进行缓存。对同一域名下的网页或者图片的请求只需要一次DNS 查询。这大大减少了DNS查询的次数。所以CURL的性能比fopen/file_get_contents 好很多。
2)fopen/file_get_contents在请求HTTP时,使用的是http_fopen_wrapper,不会keeplive。而curl却可以。这样在多次请求多个链接时,curl效率会好一些。(设置header头应该可以)

 

 

SO,如内部有需求不断请求内网dns server,尽量加上,用curl

或者用DNSMasq

相关文章:

  • 2021-11-11
  • 2021-06-08
  • 2022-12-23
  • 2021-11-03
  • 2021-09-02
  • 2021-08-01
  • 2021-09-15
猜你喜欢
  • 2021-11-27
  • 2021-06-14
  • 2021-08-27
  • 2022-12-23
相关资源
相似解决方案