curl设置DNS缓存过期时间

curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, false); // 启用时会启用一个全局的DNS缓存,此项为线程安全的,并且默认启用
curl_setopt($ch, CURLOPT_DNS_CACHE_TIMEOUT, 2); // 设置在内存中保存DNS信息的时间,默认为120秒

相关知识点:

  1. fopen/file_get_contents 每次请求远程URL中的数据都会重新做DNS查询,并不对DNS信息进行缓存。但是 curl 会自动对DNS信息进行缓存。所以CURL的请求性能好很多。
  2. fopen/file_get_contents 在请求HTTP时,使用的是http_fopen_wrapper,不会keeplive。而 curl 默认可以。这样在多次请求多个链接时,curl效率会好一些。(设置header头应该可以)

链接:
https://stackoverflow.com/questions/1341644/curl-and-https-cannot-resolve-host
https://www.cnblogs.com/jking10/p/6595981.html

Author: thinkwei

1 thought on “curl设置DNS缓存过期时间

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注