在php中curl使用频率很高,其中有两个超时设置分别是服务器响应超时CURLOPT_CONNECTTIMEOUT和文件缓冲下载超时CURLOPT_TIMEOUT
CURL超时设置CURLOPT_CONNECTTIMEOUT和CURLOPT_TIMEOUT区别是:
CURLOPT_CONNECTTIMEOUT:等待目标服务器响应时间
这个参数是为了应对目标服务器异常无响应比如过载下线或者崩溃等状况。
CURLOPT_TIMEOUT目标服务器响应后缓冲下载文件的等待时间
如果目标是个巨大的文件,生成内容速度过慢或者链路速度过慢,文件缓冲下载时间比较长,该参数可以设置大一点。
列如:
假如使用 cURL 下载一个 MP3 文件 CURLOPT_CONNECTTIMEOUT 可以设置为10秒(等待服务器响应时间),标识如果服务器10秒内没有响应,脚本就会断开连接;CURLOPT_TIMEOUT 设置为100秒,如果MP3文件100秒内没有下载完成,脚本将会断开连接。
注意:
CURLOPT_CONNECTTIMEOUT、CURLOPT_TIMEOUT 设置单位是秒,如果设置毫秒可以对应使用CURLOPT_CONNECTTIMEOUT_MS、CURLOPT_TIMEOUT_MS;CURLOPT_TIMEOUT设置为0时是永远不会断开链接(为0时可能因为链接太慢,会把 HTTP 资源用完)。