Что такое cURL и как им пользоваться

Как установить и запустить cURL, базовый синтаксис, основные команды и опции. Примеры GET- и POST-запросов, скачивания файлов, аутентификации, работы с заголовками и редиректами. Как пользоваться cURL для тестирования API и автоматизации задач.

cURL — это консольный инструмент для передачи данных по сети, который почти наверняка уже установлен на вашей машине и используется множеством приложений под капотом. В статье разберём, что делает команда cURL, как установить утилиту на разные системы, какой у неё синтаксис, а также рассмотрим практические примеры.

Где используется cURL

Утилита поддерживает многочисленные сетевые протоколы: HTTP, HTTPS, FTP, FTPS, SFTP, SCP, SMTP, IMAP, POP3 и другие. Название расшифровывается как Client URL и отражает суть инструмента: он отправляет запросы к указанным адресам и получает от них данные.

Помимо утилиты командной строки, существует библиотека libcurl, которая встраивается в языки программирования и используется в приложениях и сервисах для работы с сетью. Команда cURL применяется для тестирования и отладки API, автоматизации интеграций, проверки доступности сервисов, скачивания файлов и эмуляции действий пользователя в веб-приложениях.

cURL находит применение в самых разных сценариях разработки и эксплуатации IT-продуктов. Вот ключевые области с конкретными примерами, как именно им пользоваться:

  • Бэкенд-разработка и ручное тестирование REST API. Разработчики используют cURL для быстрой проверки эндпоинтов без запуска IDE или Postman. Например, чтобы протестировать создание пользователя в API. Это позволяет мгновенно увидеть JSON-ответ, статус-код и понять, правильно ли сервер обрабатывает реквест с параметрами.

  • DevOps и системное администрирование. В Linux-системах (Ubuntu, Linux-дистрибутивы) cURL часто применяется в скриптах мониторинга и CI/CD для проверки доступности сервисов.

  • Тестирование веб-приложений и QA. Тестировщики эмулируют действия пользователя: логины, отправку форм, работу с куки.

  • Автоматизация задач и скрипты. На всех платформах (Windows, macOS, Linux) cURL помогает в пакетных операциях: скачивании обновлений, отправке отчётов.

  • Обучение и документация. В туториалах по API cURL-примеры — стандарт, так как универсальны и не требуют установки софта.

Кроме того, cURL используется во многих приложениях: браузерах (Firefox, Chrome частично), CLI-инструментах (Git, Docker), мессенджерах. Например, в SourceCraft для разработки IT-продуктов libcurl используется под капотом для сетевых запросов в пайплайнах деплоя или в интеграциях с внешними сервисами. Такая гибкость делает cURL незаменимым инструментом для команд, работающих с сетью в проектах на платформе SourceCraft.

Как установить и запустить cURL

Во многих ОС cURL уже предустановлен; на Linux (включая Ubuntu и другие популярные дистрибутивы) пакет cURL доступен через менеджер пакетов. Именно поэтому рекомендуем сначала проверить наличие cURL и при необходимости установить его.

Проверка установки. Чтобы проверить, установлен ли cURL и какая версия используется, выполните команду:

curl --version

Команда выведет номер версии, список поддерживаемых протоколов и опций сборки. Если команда не найдена, выберите подходящий способ для установки под вашу ОС.

Установка на Windows, macOS, Linux:

  • Linux/Ubuntu (линукс):
sudo apt update
sudo apt install curl
  • CentOS/RHEL:
sudo yum install curl
  • macOS:

В macOS cURL входит в систему, однако можно установить более свежую версию через Homebrew:

brew install curl
  • Windows:

В новых версиях Windows 10 и 11 cURL доступен в PowerShell и терминале. Кроме того, можно установить его отдельно через официальный сайт curl.se или пакетные менеджеры (например, Chocolatey).

Запуск команды. Базовый способ выполнить запрос — указать команду cURL и URL:

curl https://example.com
Полноэкранное изображение

При запросе выводится содержание страницы, а именно случайный факт, который меняется при перезагрузке

Ответ сервера по умолчанию выводится в стандартный вывод (stdout), то есть прямо в терминал. В зависимости от содержимого страницы вы увидите HTML-код, JSON-ответ API или другой текстовый формат.

Базовый синтаксис cURL

Обычно запросы выглядят так:

curl [опции] [URL...]
  • curl — команда запуска утилиты;
  • [опции] — дополнительные параметры (флаги), которые управляют методом запроса, телом, заголовками, аутентификацией, поведением при редиректах;
  • [URL...] — один или несколько адресов, к которым вы посылаете запрос.

cURL-опции могут указываться в короткой форме с одним дефисом (-v, -X, -d) или в длинной форме с двумя дефисами (--verbose, --request, --data). Короткие опции, не требующие аргумента, можно объединять. Например, -OLv эквивалентно -O -L -v и позволяет одновременно сохранять файл, следовать редиректам и включить подробный вывод.

Пример общего описания команды:

curl [--request <метод>] [--header <заголовок>] [--data <данные>] [--output <файл>] <URL>

Благодаря такому синтаксису cURL-команда легко комбинируется с другими утилитами и встраивается в скрипты Linux, macOS и Windows.

Как пользоваться cURL: основные команды и опции

GET‑запрос

По умолчанию cURL-команда отправляет HTTP GET‑реквест к указанному URL, если не задан другой метод.

Простейший пример:

curl https://api.example.com/status

Чтобы вывести только HTTP‑заголовки и статус, а не тело ответа, можно использовать опцию -I:

curl -I https://example.com

POST‑запрос

Чтобы сделать POST‑запрос с телом, используются опции -d или --data.

Пример отправки form‑данных:

curl -X POST -d "login=test&password=1234" https://example.com/login

Если вы посылаете JSON, удобно задать заголовок Content-Type и использовать данные в формате строки:

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"name":"Ivan","role":"developer"}' \
  https://api.example.com/users

При использовании -d метод по умолчанию становится POST, так что флаг -X POST можно опустить, если явно задаются данные.

Скачивание файла

Для скачивания файла на диск используются опции -o и -O:

  • -o <file> — сохранить в указанный локальный файл;
  • -O — использовать имя файла, заданное в URL или заголовках ответа.

Примеры:

# Сохранить файл под своим именем
curl -o page.html https://example.com

# Сохранить файл с именем с сервера
curl -O https://example.com/file.zip

Можно скачивать несколько файлов, указав несколько URL подряд или используя дополнительные cURL-команды shell, например, через xargs и список ссылок в текстовом файле.

Вывод HTTP‑заголовков

Чтобы посмотреть только заголовки ответа, используют опцию -I (--head):

curl -I https://example.com

Если нужно увидеть и заголовки, и тело, можно включить подробный режим:

curl -v https://example.com

Иногда полезно добавить или изменить заголовки запроса, например при работе с API:

curl -H "Authorization: Bearer <token>" \
     -H "Accept: application/json" \
     https://api.example.com/me

Опция -H (--header) добавляет указанные строки заголовков к запросу и может использоваться несколько раз.

Аутентификация

cURL поддерживает различные схемы аутентификации: Basic, Digest, Bearer‑токены, а также авторизацию на FTP/SFTP и других протоколах.

Простой пример cURL-команды для Basic‑аутентификации:

curl -u user:password https://example.com/private

Для Bearer‑токенов обычно используют заголовок Authorization:

curl -H "Authorization: Bearer <token>" \
     https://api.example.com/me

При работе с FTP можно указать пользователя и пароль через -u, а затем выполнять загрузку или скачивание файлов:

curl -u user:qwerty1234 -O ftp://yourftpserver/yourfile

Следование редиректам

По умолчанию cURL не следует HTTP‑редиректам (ответы 3xx) автоматически. Чтобы включить автоматическое перенаправление, используют опцию -L (--location):

curl -L https://short.url/example

В сочетании с -O это позволяет корректно скачивать файлы с ресурсов, которые сначала отвечают редиректом, а затем отдают содержимое:

curl -LO https://example.com/download/latest

Загрузка файла на сервер

Для отправки файла на сервер по HTTP/S можно использовать опцию -T (upload):

curl -T file.txt https://example.com/upload

Если сервер ожидает multipart/form-data (как HTML‑формы), применяется опция -F:

curl -F "file=@report.pdf" -F "user=nika" https://example.com/upload

При работе с FTP загрузка файла также выполняется через -T и URL с путём на сервере:

curl -u user:password -T backup.tar.gz
ftp://ftp.example.com/backups/

Дополнительные возможности и полезные опции cURL

cURL имеет богатый набор опций, часть из которых особенно полезна при тестировании API и автоматизации. Ниже несколько распространённых примеров использования:

  • -X / --request — явно указать HTTP‑метод (GET, POST, PUT, DELETE и др.);
  • --data-json или --data-binary в новых сборках — гибкая работа с JSON и бинарными данными;
  • -k / --insecure — разрешить подключение к HTTPS без проверки сертификата (для тестовых стендов, использовать осторожно);
  • -s / --silent — «тихий» режим, подходящий для скриптов, где лишний вывод не нужен;
  • -w / --write-out — форматированный вывод статистики запроса (время, код ответа и т. п.).

Узнать больше возможных параметров можно через запрос:

curl --help
Полноэкранное изображение

В результатах запроса можно увидеть список параметров, их описание и сокращения

Комбинируя эти опции, можно выполнять сложные сценарии: тестовые запросы с разными заголовками и параметрами, проверку производительности, отправку form‑данных и файлов, работу через прокси и многое другое.

Советы по использованию cURL

Несколько практических рекомендаций, которые помогают эффективнее пользоваться cURL-командой в повседневной работе:

  • Используйте явный синтаксис методов и заголовков. Указывайте -X и -H там, где важно точно воспроизвести запрос, например при переносе запросов из Postman или документации API.

  • Сохраняйте частые запросы в скрипты. Часто повторяющиеся команды удобно вынести в shell‑скрипты для Linux/macOS или .bat/PowerShell‑скрипты для Windows; так запускается сложный запрос одной строкой.

  • Используйте -v и -I для отладки. Подробный вывод и заголовки помогают понять, что именно отправляет и получает утилита, какие опции используются и как сервер обрабатывает запрос.

  • Следите за безопасностью. Избегайте хранения конфиденциальных данных в истории командной строки и используйте при необходимости файлы конфигураций .curlrc.

  • Читайте официальную документацию. Полный список cURL-опций, деталей синтаксиса и примеров доступен в man‑странице и на официальном сайте curl.se, где подробно описано, как может использоваться инструмент в различных сценариях.

cURL — это многофункциональный инструмент для работы с https и не только. С помощью пары команд в терминале можно отправлять GET- и POST-запросы, скачивать файлы, проверять здоровье сервисов и повторять реальные сценарии пользователей. Когда вы изучите базовый синтаксис и несколько ключевых параметров, сможете быстрее тестировать API, автоматизировать рутину и меньше зависеть от тяжёлых графических инструментов — достаточно пары запросов в командной строке.

Что такое cURL и как им пользоваться
Войдите, чтобы сохранить пост