PHP: Значение таймаута завитка по умолчанию
Каково значение тайм-аута PHP cURL по умолчанию? Могу ли я получить значение из кода?
3 answers
Значения по умолчанию следующие:
- CURLOPT_FTP_RESPONSE_TIMEOUT: Неопределенный
- CURLOPT_TIMEOUT: Неопределенный
- CURLOPT_TIMEOUT_MS: Неопределенный
- CURLOPT_CONNECTTIMEOUT: 300 секунд
- CURLOPT_CONNECTTIMEOUT_MS: Неопределенный
- CURLOPT_ACCEPTTIMEOUT_MS: 60 секунд
Предыдущий ответ (для справки):
Насколько я понимаю, CURL подчиняется параметру default_socket_timeout, если он не переопределен с помощью CURLOPT_TIMEOUT
/CURLOPT_CONNECTTIMEOUT
.
$socket_timeout = ini_get('default_socket_timeout'); // timeout in seconds
Это зависит от того, о какой настройке тайм-аута вы говорите.
CURL предлагает различные параметры, зависящие от настроек времени ожидания соединения. Некоторые из этих опций имеют установленный лимит, в то время как другие позволяют переводам занимать неопределенное количество времени. Чтобы понять, какие значения имеют настройки по умолчанию, а какие нет, вам нужно взглянуть на функцию libcurl curl_easy_setopt()
: http://curl.haxx.se/libcurl/c/curl_easy_setopt.html
В Libcurl перечислены следующие соединения конкретные настройки тайм-аута:
- CURLOPT_FTP_RESPONSE_TIMEOUT: По умолчанию нет (неопределенно)
- CURLOPT_TIMEOUT: По умолчанию нет (неопределенно)
- CURLOPT_TIMEOUT_MS: По умолчанию нет (неопределенно)
- CURLOPT_CONNECTTIMEOUT: По умолчанию 300 секунд
- CURLOPT_CONNECTTIMEOUT_MS: По умолчанию нет
- CURLOPT_ACCEPTTIMEOUT_MS: По умолчанию 60000 мс
Исходный код PHP не переопределяет ни одну из вышеперечисленных настроек по умолчанию: https://github.com/php/php-src/blob/master/ext/curl/interface.c . Единственным несколько связанным параметром, переопределяемым привязками PHP, является CURLOPT_DNS_CACHE_TIMEOUT
, изменяющий значение по умолчанию с 60 секунд до 120 секунд: https://github.com/php/php-src/blob/a0e3ca1c986681d0136ce4550359ecee2826a80c/ext/curl/interface.c#L1926
В одном из других ответов говорилось, что PHP установит CURLOPT_TIMEOUT
значение, указанное в параметре default_socket_timeout
ini. Я не смог ничего найти в исходном коде PHP код для резервного копирования этого утверждения, и я не смог вызвать тайм-аут завитка, загрузив очень большой файл с настройкой default_socket_timeout
в 1 секунду.
Нет в libcurl. http://curl.haxx.se/mail/lib-2003-05/0097.html