cURL - программный проект, состоящий из библиотеки (библиотекаcurl) и ракушка (curl) ориентирован на передачу файлов. Он поддерживает протоколы FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, FILE и LDAP, а также другие.
cURL поддерживает сертификаты HTTPS, HTTP POST, HTTP PUT, Загрузка по FTP, Kerberos, загрузка форм HTTP, прокси, файлы cookie, аутентификация по имени пользователя и паролю (Basic, DIgest, NTLM и Negotiate для HTTP и kerberos 4 для FTP), продолжение передачи файлов, туннелирование HTTP-прокси, IMAP, POP3, LDAP, RTSP, RTMP и другие преимущества.
Основное назначение и использование cURL - автоматизация передачи файлов. или неконтролируемые последовательности операций. Это, например, действенный инструмент для имитации действий пользователей в веб-браузере.
в основном это утилита для приема и отправки данных по сети, который предоставляет возможность гибко формировать запрос, задавая такие параметры, как cookie, user_agent, referer и любой другой заголовок.
Кроме того, библиотека libcurl предоставляет API для использования всех функций curl в программах на таких языках, как C, Perl, PHP, Python.
cURL - это бесплатное программное обеспечение с открытым исходным кодом, распространяемое по лицензии MIT.
О новой версии cURL 7.66.0
Недавно вышла новая версия cURL lкоторого он достигает с исправлением 77 ошибок и реализует несколько нововведений, среди которых выделено добавление начальной поддержки протокола HTTP / 3, который еще не приведен в полнофункциональный вид и по умолчанию отключен (например, пока не будет готов обработчик завершения соединения, не работает распараллеливание и обработка больших запросов).
Чтобы включить HTTP 3, требуется перестройка с использованием бэкэндов quiche или ngtcp2. + nghttp3. Предлагается использование параметра «–http3» и опции libcurl «CURLOPT_HTTP_VERSION»;
Еще одно важное изменение в этой новой версии cURL заключается в том, что добавлены параметры «-Z» («–параллельно») и «–parallel-max», который позволяет организовать одновременную загрузку списка URL-адресов в несколько последовательностей.
Добавлена возможность установить другой идентификатор для авторизации в SASL, указанный параметром «–sasl-authzid» или опцией CURLOPT_SASL_AUTHZID (идентификатор аутентификации передается через CURLOPT_USERPWD).
Обработка HTTP-заголовка Retry-After и кода возврата 429 была реализована с использованием параметра «–retry» или параметра CURLINFO_RETRY_AFTER.
Заголовок Retry-After определяет задержку перед отправкой последующих запросов в случае получения кодов ответа 429 (слишком много запросов), 503 (служба недоступна) или 301 (перемещено навсегда).
Из других изменений, которые выделяются в этой новой версии:
- Была добавлена функция curl_multi_poll (), идентичная curl_multi_wait (), за исключением случаев, когда нет файловых дескрипторов для ожидания (curl_multi_wait немедленно завершается, а curl_multi_poll вводит небольшую задержку перед выходом, чтобы избежать ложных ситуаций загрузки из-за циклического вызова)
- Начиная с этого выпуска, curl по умолчанию будет считать эти HTTP-ответы недействительными.
- Исправлены уязвимости: CVE-2019-5481: двойная блокировка свободной памяти в FTP-KRB (kerberos через FTP); CVE-2019-5482: переполнение буфера в драйвере TFTP.
- Исправлена регрессия, из-за которой curl неправильно использовал учетные данные URL-адреса при выполнении многоступенчатой аутентификации (например, HTTP-дайджест) с прокси.
Как установить cURL в Linux?
Для тех, кто заинтересован в возможности установить эту новую версию cURL Они могут сделать это, загрузив исходный код и скомпилировав его.
Для этого первое, что мы собираемся сделать, это загрузить последний пакет cURL с помощью терминала, в нем напечатайте:
wget https://curl.haxx.se/download/curl-7.66.0.tar.xz
Затем мы собираемся распаковать загруженный пакет с помощью:
tar -xzvf curl-7.66.0.tar.xz
Входим во вновь созданную папку с:
cd curl-7.66.0
Входим как root с помощью:
sudo su
И набираем следующее:
./configure --prefix=/usr \ --disable-static \ --enable-threaded-resolver \ --with-ca-path=/etc/ssl/certs &&
make make install && rm -rf docs/examples/.deps &&
find docs \( -name Makefile\* -o -name \*.1 -o -name \*.3 \) -exec rm {} \; &&
install -v -d -m755 /usr/share/doc/curl-7.66.0 && cp -v -R docs/* /usr/share/doc/curl-7.66.0
Наконец, мы можем проверить версию с помощью:
curl --version