Оригинальный автор(ы) | Дэниел Стенберг [1] |
---|---|
Разработчик(и) | Участники проекта curl |
Первоначальный выпуск | 1996 ( 1996 ) | [2]
Стабильный релиз | 8.10.1 [3] / 18 сентября 2024 г. |
Репозиторий |
|
Написано в | С |
Платформа | Кроссплатформенный |
Тип | веб-клиент (поддерживает, например , HTTPS и FTP ) |
Лицензия | лицензия curl [4] [5] (вдохновленная лицензией MIT [5] ), а также ISC , 3-пунктовая BSD , 4-пунктовая BSD [6] |
Веб-сайт | curl.se |
cURL (произносится как «керл», [7] / k ɜːr l / ) — проект компьютерного программного обеспечения, предоставляющий библиотеку ( libcurl ) и инструмент командной строки ( curl ) для передачи данных с использованием различных сетевых протоколов . Название означает «Клиент для URL ». [8]
curl был впервые выпущен в 1996 году. [9] Первоначально он назывался httpget , а затем стал urlget, прежде чем принять текущее название curl [10] [11] Первоначальным автором и ведущим разработчиком является шведский разработчик Даниэль Стенберг , который создал curl, потому что хотел автоматизировать получение курсов обмена валют для пользователей IRC . [2]
libcurl — это бесплатная клиентская библиотека передачи URL , [12] поддерживающая файлы cookie , DICT , FTP , FTPS , Gopher , HTTP/1 [13] (с поддержкой HTTP/2 и HTTP/3 ), HTTP POST , HTTP PUT , туннелирование HTTP-прокси , HTTPS , IMAP , Kerberos , LDAP , MQTT , POP3 , RTSP , RTMP , SCP , SMTP и SMB . Библиотека поддерживает схему URI файла , SFTP , Telnet , TFTP , возобновление передачи файлов, загрузку FTP, загрузку на основе форм HTTP, сертификаты HTTPS, LDAPS, прокси и аутентификацию «пользователь плюс пароль». [14]
Библиотека libcurl является переносимой. Она собирается и работает одинаково на многих платформах, включая AIX , AmigaOS , Android , [ требуется ссылка ] BeOS , BlackBerry Tablet OS и BlackBerry 10 , [15] OpenVMS , Darwin , DOS , FreeBSD , HP-UX , HURD , iOS , IRIX , Linux , macOS , NetBSD , NetWare , OpenBSD , OS/2 , QNX Neutrino , RISC OS , Solaris , Symbian , Tru64 , Ultrix , UnixWare , Microsoft Windows и OpenHarmony . [16] [17] [18]
Библиотека libcurl бесплатна, потокобезопасна и совместима с IPv6 . Привязки доступны для более чем 50 языков , включая C / C++ , Java , Julia (в комплекте), PHP и Python . [19]
Библиотека libcurl поддерживает GnuTLS , mbed TLS , NSS , gskit на IBM i , SChannel на Windows, Secure Transport на macOS и iOS, SSL/TLS через OpenSSL , BoringSSL , libreSSL , AmiSSL, wolfSSL , BearSSL и rustls . [20]
curl — это инструмент командной строки для получения или отправки данных, включая файлы, с использованием синтаксиса URL . Поскольку curl использует libcurl, он поддерживает все протоколы, поддерживаемые libcurl. [14]
curl поддерживает HTTPS и выполняет проверку сертификата SSL по умолчанию, когда указан защищенный протокол, такой как HTTPS. Когда curl подключается к удаленному серверу через HTTPS, он получает сертификат удаленного сервера, а затем проверяет по своему хранилищу сертификатов CA действительность удаленного сервера, чтобы убедиться, что удаленный сервер является тем, за который он себя выдает. Некоторые пакеты curl связаны с файлом хранилища сертификатов CA. Существует несколько параметров для указания сертификата CA, таких как --cacert и --capath . Параметр --cacert можно использовать для указания местоположения файла хранилища сертификатов CA. На платформе Windows, если файл сертификата CA не указан, curl будет искать имя файла сертификата CA «curl-ca-bundle.crt» в следующем порядке:
curl вернет сообщение об ошибке, если удаленный сервер использует самоподписанный сертификат или если сертификат удаленного сервера не подписан CA, указанным в файле сертификата CA. Для пропуска проверки сертификата можно использовать параметр -k или --insecure . В качестве альтернативы, если удаленный сервер является доверенным, сертификат CA удаленного сервера можно добавить в файл хранилища сертификатов CA.
Базовое использование curl заключается в простом вводе curl в командной строке, а затем URL-адреса выходных данных для получения:
$ curl www.example.com
curl по умолчанию отображает вывод, который он извлекает, в стандартный вывод, указанный в системе (обычно в окне терминала). Поэтому запуск команды выше в большинстве систем отобразит исходный код www.example.com в окне терминала. Флаг -o можно использовать для сохранения вывода в файле:
$ curl -o пример.html www.example.com
Доступны дополнительные параметры, изменяющие поведение инструмента.
просто принял существующий инструмент командной строки с открытым исходным кодом httpget, который бразилец Рафаэль Сагула написал и недавно выпустил версию 0.1. После нескольких незначительных изменений он сделал именно то, что ему было нужно. [...] HttpGet 1.0 был выпущен 8 апреля 1997 года с совершенно новой поддержкой HTTP-прокси. [...] Стенберг тратил время на написание IRC-бота для канала, связанного с Amiga, на EFnet. Затем ему пришла в голову идея сделать расчеты обмена валют доступными для пользователей Internet Relay Chat (IRC).
релиз curl. До этого инструмент назывался urlget. А до этого httpget.
Обновите документацию соответствующим образом и проверьте в тесте 1174.
Для эмуляции поддержки команды Linux cURL достаточно создать файл cURL.ps1, содержащий следующий код.