🖧 Как установить тайм-аут в команде cURL

Мануал

cURL – это отличный инструмент для сетевых коммуникаций, он расшифровывается как “client URL”.

Практически каждое устройство на земном шаре, подключающееся к Интернету, использует cURL.

Самое широкое применение cURL – это загрузка файлов с удаленного сервера в терминал.

Начальным этапом подключения к серверу для любого вида связи является ожидание ответа.

Задержка может произойти по целому ряду причин, некоторые из них – нагрузка на сервер, пропускная способность сети, задержка и т.д.

Если задержка больше, чем вы хотели бы ждать, вы можете указать длительность “тайм-аута”.

Лучший способ добиться этого – использовать параметр –connect-timeout.

curl --connect-timeout <duration> <URL>

Используйте опцию ‘–connect-timeout’

У cURL есть дополнительный флаг ‘–connect-timeout’, где вы можете указать продолжительность в секундах.

Если у вас версия cURL 7.32.0 или более поздняя, вы также можете указать продолжительность в десятичных значениях.

Указанное вами значение будет задавать максимальную продолжительность оaжидания ответа от удаленного сервера.

Ниже приведен пример использования флага ‘–connect-timeout’:

curl --connect-timeout 4.2 https://itsecforu.ru

Использование ‘4.2’ вместе с флагом ‘–connect-timeout’ означает, что cURL попытается соединиться с ‘itsecforu.ru’, и если это займет более 4,2 секунды, соединениcе будет прервано.

Альтернатива, опция ‘–max-time’

Флаг ‘–max-time’ используется, когда вы выполняете несколько операций в пакете.

Этот флаг устанавливает продолжительность всей операции – например, загрузки большого файла.

Если операция, например, загрузка файла, займет больше указанного времени, операция будет прервана.

$ curl --max-time 20 https://github.com/aristocratos/btop/releases/download/v1.2.3/btop-aarch64-linux-musl.tbz

В данном примере использования cURL будет загружен файл.

Когда общее время “подключения к серверу” + “время загрузки файла” превысит 20 секунд, которые мы указали здесь, загрузка будет прекращена.

В данном случае размер файла слишком мал, чтобы загрузка заняла более 20 секунд, поэтому команда будет выполнена успешно.

Заключение

В этой статье мы рассмотрели, как можно установить максимальную продолжительность (таймаут) либо для времени подключения к удаленному серверу, либо для таймаута всей работы сети.

см.также:

Добавить комментарий