cURL

Бесплатное клиентское программное обеспечение для передачи данных по URL
завиток
Оригинальный автор(ы)Дэниел Стенберг [1]
Разработчик(и)Участники проекта curl
Первоначальный выпуск1996 ; 28 лет назад [2] ( 1996 )
Стабильный релиз
8.10.1 [3]  / 18 сентября 2024 г.
Репозиторий
  • github.com/curl/curl
Написано вС
ПлатформаКроссплатформенный
Типвеб-клиент (поддерживает, например , 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

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» в следующем порядке:

  1. Каталог, в котором находится программа curl.
  2. Текущий рабочий каталог.
  3. Системный каталог Windows.
  4. Каталог Windows.
  5. Каталоги, указанные в переменных среды %PATH%. [21]

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

Доступны дополнительные параметры, изменяющие поведение инструмента.

Смотрите также

  • curl-loader – инструмент тестирования с открытым исходным кодом, основанный на curl
  • libwww – ранняя библиотека, имеющая интерфейс командной строки
  • PowerShelliwr (Invoke-WebRequest) Windows PowerShell имел функциональность, похожую на curl; также класс Web-client. [22]
  • Веб-сканер – интернет-бот, который может сканировать Интернет.
  • Wget – аналогичный инструмент командной строки без связанной библиотеки, но с возможностью рекурсивной загрузки

Ссылки

  1. ^ Стенберг, Дэниел (20 марта 2015 г.). "curl, 17 лет сегодня". daniel.haxx.se . Получено 20 марта 2015 г.
  2. ^ ab "История curl - Как curl стал таким". curl. Архивировано из оригинала 30 сентября 2017 г. Получено 17 ноября 2016 г. Дэниел просто принял существующий инструмент командной строки с открытым исходным кодом httpget, который бразилец Рафаэль Сагула написал и недавно выпустил версию 0.1. После нескольких незначительных изменений он сделал именно то, что ему было нужно. [...] HttpGet 1.0 был выпущен 8 апреля 1997 года с совершенно новой поддержкой HTTP-прокси. [...] Стенберг тратил время на написание IRC-бота для канала, связанного с Amiga, на EFnet. Затем ему пришла в голову идея сделать расчеты обмена валют доступными для пользователей Internet Relay Chat (IRC).
  3. ^ Дэниел Стенберг (18 сентября 2024 г.). "curl 8.10.1" . Получено 18 сентября 2024 г.
  4. ^ "Лицензия curl". spdx.org .
  5. ^ ab "curl - copyright". curl.se . Архивировано из оригинала 2024-01-15 . Получено 2024-01-17 .
  6. ^ Мель, Макс; Стенберг, Дэниел (13 июня 2022 г.). «Коммит «авторское право: сделать репозиторий совместимым с REUSE»». GitHub.com .
  7. ^ "curl - Часто задаваемые вопросы". curl.se .
  8. ^ Стенберг, Дэниел. "Происхождение названия". curl.se . Получено 27.03.2021 .
  9. ^ "История curl". fossies.org. Архивировано из оригинала 17 сентября 2021 г. Получено 11 мая 2021 г.
  10. ^ "Changelog". 4 января 2020 г. Получено 4 января 2020 г. Первый релиз curl. До этого инструмент назывался urlget. А до этого httpget.
  11. ^ Стенберг, Дэниел (4 января 2020 г.). "Восстановлен полный список изменений curl" (html) . Haxx Se . Получено 2 января 2020 г. .
  12. ^ Джонс, М. Тим (8 сентября 2009 г.). «Общение через Интернет с помощью cURL и libcurl — использование libcurl с C и Python». IBM Developerworks . Архивировано из оригинала 14 апреля 2015 г. Получено 12 сентября 2018 г.
  13. ^ Стенберг, Дэниел (5 августа 2019 г.). "http09: отключить HTTP/0.9 по умолчанию в инструменте и библиотеке". GitHub . Архивировано из оригинала (html) 5 августа 2019 г. Получено 5 августа 2019 г. Поскольку план был изложен в разделе Устаревшие . Обновите документацию соответствующим образом и проверьте в тесте 1174.
  14. ^ ab "curl - Как использовать". curl.se .
  15. ^ "Компоненты с открытым исходным кодом для собственного SDK для BlackBerry Tablet OS". Архивировано из оригинала 2013-01-27 . Получено 2017-09-19 .
  16. ^ "Стороннее программное обеспечение с открытым исходным кодом Curl". Gitee . OpenAtom OpenHarmony . Получено 17 марта 2024 г. .
  17. ^ "Стороннее программное обеспечение с открытым исходным кодом Curl". GitHub . OpenAtom OpenHarmony . Получено 17 марта 2024 г. .
  18. ^ «Tar и Curl приходят в Windows!». techcommunity.microsoft.com . 22 марта 2019 г.
  19. ^ "привязки libcurl". curl.se.
  20. ^ "curl поддерживает rustls | daniel.haxx.se". 9 февраля 2021 г. Получено 01.01.2022 г.
  21. ^ "curl - Сертификаты SSL CA". curl.se .
  22. ^ Дел, Райан (2 марта 2018 г.). «Команды, эквивалентные cURL и Wget для командной строки Windows с Powershell» [эквивалентные команды cURL и Wget для командной строки Windows с Powershell] (html) . Рядель (на итальянском языке) . Проверено 4 января 2020 г. Для эмуляции поддержки команды Linux cURL достаточно создать файл cURL.ps1, содержащий следующий код.
  • Официальный сайт
  • Сравнение curl с другими инструментами загрузки с открытым исходным кодом
  • Стенберг, Дэниел (9 ноября 2021 г.) [2007]. «Сравнение curl и wget».
Взято с "https://en.wikipedia.org/w/index.php?title=CURL&oldid=1219092533#libcurl"