Что такое cURL, вопросы и ответы


Что такое cURL?

cURL - это название проекта, (и игра слов, в английском языке curl - завиток). Далее четыре расшифровки каждая следующая, все интереснее и интереснее, закручивается.

  • Название представляет собой аббревиатуру Client for URLs, "Клиент для URL-адресов", изначально URL-адрес написан в верхнем регистре, чтобы было очевидно, что мы имеем дело с URL-адресами.
    URL это аббревиатура, которая расшифровывается как Uniform Resource Locator, или «унифицированный указатель ресурса», т.е. адрес сайта размещенного в сети Интернет.
  • Также, можно прочитать как "сии УРЛ" - смотреть URL", то есть 'see URL', первая буква "с", читается как "see", перевод этого слова на русский язык "смотреть".
  • Ещё вариант, сокращение от "Client URL Request Library" - "Библиотека запросов URL-адресов клиентов"
  • И вишенка на торте, рекурсивная версия (версия которая содержит саму себя) - "curl URL Request Library" или "Библиотека запросов URL-адресов curl"

Данная статья перевод FAQ с сайта https://curl.se/

Проект cURL это два продукта:

libcurl

Библиотека передачи URL-адресов на стороне клиента, поддерживающая DICT, ФАЙЛ, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTP, TELNET и TFTP. Библиотекаэто набор заранее определённых функций, из которых, как из кирпичиков, можно складывать то, что нам нужно.

libcurl поддерживает сертификаты HTTPS, HTTP POST, HTTP PUT, загрузку по FTP, Kerberos, SPNEGO, загрузку на основе HTTP-форм, прокси-серверы, файлы cookie, аутентификацию пользователя + пароль, возобновление передачи файлов, туннелирование http-прокси и многое другое.

libcurl обладает высокой переносимостью, он создается и одинаково работает на многих платформах, включая Solaris, NetBSD, FreeBSD, OpenBSD, Darwin, HP-UX, IRIX, AIX, Tru64, Linux, UnixWare, HURD, Windows, Amiga, OS/2, macOS, Ultrix, QNX, OpenVMS, RISC OS, Novell NetWare, DOS, Symbian, OSF, Android, Minix, IBM TPF и многое другое...

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

cURL

Инструмент командной строки для получения или отправки данных с использованием синтаксиса URL.

Поскольку curl использует libcurl, curl поддерживает тот же широкий спектр распространенных интернет-протоколов, что и libcurl.

Мы произносим curl с начальным звуком k. Оно рифмуется с такими словами, как girl "девушка" и earl "граф". Это короткий WAV-файл, который поможет вам:

https://media.merriam-webster.com/soundc11/c/curl0001.wav

Существует множество подпроектов и связанных с ними проектов, которые также используют слово curl в названиях проектов в различных комбинациях, но вам следует обратить внимание, что этот часто задаваемый вопрос предназначен для инструмента командной строки curl (и библиотеки libcurl) и поэтому может быть недействительным для других проектов, связанных с curl.

Что такое libcurl?

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

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

libcurl, скорее всего, является самой портативной, самой мощной и наиболее часто используемой мультиплатформенной библиотекой передачи файлов на основе C на этой планете - будь то с открытым исходным кодом или коммерческая.

Чем не является curl?

  • curl не является клоном wget. Это распространенное заблуждение. Никогда, во время разработки curl, мы не предполагали, что curl заменит wget или будет конкурировать на его рынке. curl предназначен для однократной передачи файлов.
  • curl не является программой зеркального отображения веб-сайтов. Если вы хотите использовать curl для отражения чего-либо: отлично, продолжайте и напишите сценарий, который обертывается вокруг curl, или используйте libcurl, чтобы воплотить его в реальность.
  • curl не является программой зеркального отображения FTP-сайтов. Конечно, получайте и отправляйте FTP с помощью curl, но если вы хотите систематического и последовательного поведения, вам следует написать скрипт (или написать новую программу, которая взаимодействует с libcurl) и сделать это.
  • curl не является инструментом PHP, хотя он отлично работает при использовании с PHP или с PHP (при использовании модуля PHP /CURL).
  • curl - это не программа для одной операционной системы. curl существует, компилируется, строится и работает под широким спектром операционных систем, включая все современные Unix (и много старых тоже), Windows, Amiga, OS / 2, macOS, QNX и т.д.

Когда вы доработаете curl делать xxxx?

Нам нравятся предложения о том, что нужно изменить, чтобы сделать curl и libcurl лучше. Однако мы придерживаемся нескольких правил, когда речь заходит о будущем curl:

  • curl - инструмент командной строки - должен оставаться неграфическим инструментом командной строки. Если вам нужны графические интерфейсы или необычные возможности написания сценариев, вам следует поискать другой инструмент, использующий libcurl.
  • Мы не добавляем в curl то, что другие небольшие и доступные инструменты уже хорошо делают на стороне. вывод curl может быть передан в другую программу или перенаправлен в другой файл для интерпретации следующей программой.
  • Мы фокусируемся на вопросах и улучшениях, связанных с протоколом. Если вы хотите сделать больше волшебства с поддерживаемыми протоколами, чем в настоящее время делает curl, велика вероятность, что мы согласимся. Если вы хотите добавить больше протоколов, мы можем согласиться.
  • Если вы хотите, чтобы кто-то другой выполнил всю работу, пока вы ждете, пока мы выполним ее за вас, это не дружелюбное отношение. Мы уже тратим значительное время на поддержание и развитие curl. Чтобы получить от нас больше, вам следует подумать о том, чтобы взамен потратить часть своего времени и усилий. Просто перейдите в репозиторий GitHub, который находится по адресу https://github.com/curl/curl , разветвляйте проект и создавайте запросы на коммит с предлагаемыми вами изменениями.
  • Если вы напишете код, то больше шансов, что он быстрее попадет в curl.

Кто делает curl?

  • curl и libcurl не созданы каким-либо отдельным человеком. Дэниел Стенберг является руководителем проекта и главным разработчиком, но материалы других людей важны и имеют решающее значение. Любой желающий может внести свой вклад и опубликовать свои изменения и улучшения, а также включить их в основные источники (конечно, при условии, что разработчики согласны с тем, что исправления хороши).
  • Полный список всех участников можно найти в файле docs/СПАСИБО.
  • curl разработан сообществом, за рулем которого стоит Дэниел.

Что вы получаете за создание curl?

Проект cURL полностью бесплатный и открытый. Мы делаем это добровольно, в основном в свободное время. Компании могут платить отдельным разработчикам за работу над curl. Это никоим образом не контролируется и не контролируется проектом curl.

Мы получаем помощь от компаний. Haxx предоставляет веб-сайт, пропускную способность, списки рассылки и т.д., На GitHub размещен основной репозиторий git и другие сервисы, такие как отслеживание ошибок на https://github.com/curl/curl . Кроме того, опять же, некоторые компании спонсировали определенные части разработки в прошлом, и я надеюсь, что некоторые продолжат это делать в будущем.

Если вы хотите поддержать наш проект, подумайте о пожертвовании или баннерной программе, а еще лучше: помогая нам с кодированием, документированием или тестированием и т.д.

Смотрите также: https://curl.se/sponsors.html

Как насчет curl от curl.com ?

В течение лета 2001 года, curl.com был занят рекламой своего клиентского языка программирования для Интернета под названием CURL.

Мы никоим образом не связаны с curl.com или их язык программирования CURL.

Название нашего проекта curl эффективно используется с 1998 года. Мы не были первым компьютерным проектом, использующим название "curl", и не претендуем на какие-либо права на это название.

Мы признаем, что будем жить параллельно с curl.com и желаю им всяческих успехов.

У меня проблема, кому мне отправлять почту?

Пожалуйста, не отправляйте письма ни одному отдельному лицу, если вам это действительно не нужно. Сохраняйте вопросы, связанные с curl, в подходящем списке рассылки. Все доступные списки рассылки перечислены в документе РУКОВОДСТВА и в Интернете по адресу https://curl.se/mail/

Сохранение вопросов и обсуждений, связанных с curl, в списках рассылки позволяет другим присоединиться и помочь, поделиться своими идеями, внести свои предложения и поделиться своей мудростью. Ведение обсуждений в общедоступных списках рассылки также позволяет другим извлекать уроки из этого (как нынешним, так и будущим пользователям благодаря веб-архивам списков рассылки), тем самым избавляя нас от необходимости повторяться еще больше. Спасибо за уважение к этому.

Если вы обнаружили или просто подозреваете проблему безопасности в curl или libcurl, отправьте все подробности по адресу https://hackerone.one/curl . Там мы сохраняем проблему в тайне, пока расследуем, подтверждаем ее, работаем и проверяем исправление, согласовываем график публикации и т.д. Таким образом, мы своевременно производим исправление до того, как об ошибке будет объявлено всему миру, снижая риск возникновения проблемы для существующих пользователей.

О проблемах безопасности также можно сообщить в службу безопасности curl, отправив электронное сообщение службе безопасности по адресу curl.se (закрытый список получателей, адреса электронной почты не разглашаются).

Где я могу заказать коммерческую поддержку для curl?

curl полностью с открытым исходным кодом. Это означает, что вы можете нанять любого квалифицированного инженера для устранения ваших проблем, связанных с curl.

Сколько пользователей curl?

  • Это невозможно сказать.
  • Мы не знаем, сколько пользователей сознательно установили и используют curl.
  • Мы не знаем, сколько пользователей используют curl, не зная, что они на самом деле его используют.
  • Мы не знаем, сколько пользователей скачали или установили curl, а затем никогда им не пользовались.
  • По нашим оценкам, в 2020 году curl работал примерно в десяти миллиардах установок по всему миру.

Почему вы не обновляете ca-bundle.crt

В проекте cURL мы решили не пытаться обновлять этот файл (или даже представлять), поскольку решение о том, что добавить в пакет сертификатов ca, - это обязательство, которое мы не были готовы принять, и то, что мы можем получить от Mozilla, прекрасно, поэтому нет необходимости дублировать эту работу.

Сегодня, когда многие службы выполняются по протоколу HTTPS, каждая операционная система должна иметь пакет сертификатов ca по умолчанию, который можно считать в некоторой степени надежным, и эта коллекция (при разумном обновлении) должна считаться намного лучше, чем частная версия curl.

Если вам нужна самая последняя коллекция сертификатов ca, которую использует Mozilla Firefox, мы рекомендуем вам самостоятельно извлечь коллекцию из Mozilla Firefox (выполнив команду "создать ca-пакет") или с помощью нашей настройки онлайн-сервиса для этой цели: https://curl.se/docs/caextract.html

У меня проблема, с кем я могу пообщаться?

На канале #curl в IRC-сети libera.chat тусуется много дружелюбных людей. Если вы вежливы и милы, велика вероятность, что вы сможете получить - или оказать - помощь мгновенно.

Какой номер ECCN curl ?

Правительство США ограничивает экспорт программного обеспечения, содержащего или использующего криптографию. При этом Классификационный номер экспортного контроля (ECCN) используется для определения уровня экспортного контроля и т.д.

Apache Software Foundation дает хорошее объяснение ECCNS на https://www.apache.org/dev/crypto.html

https://curl.se/docs/faq.html#What_is_cURL