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

9 минут чтения
Средний рейтинг статьи — 4.9

curl (Client URL) — это мощная и гибкая командная утилита с открытым исходным кодом, предназначенная для передачи данных с использованием различных протоколов. Она особенно популярна среди системных администраторов, разработчиков и специалистов по DevOps благодаря своей простоте, универсальности и кроссплатформенности.

С помощью curl можно:

  • отправлять HTTP/HTTPS-запросы (GET, POST, PUT, DELETE и др.);
  • загружать и отправлять файлы;
  • работать с API;
  • выполнять диагностику сетевых проблем;
  • настраивать аутентификацию и заголовки;
  • имитировать работу браузера или клиента.

curl поддерживает множество протоколов, включая: HTTP, HTTPS, FTP, FTPS, SCP, SFTP, LDAP, MQTT, POP3, SMTP и другие.

Установка curl

На большинстве операционных систем curl уже предустановлен. Ниже описано, как его установить или обновить при необходимости.

Windows

  • Начиная с Windows 10 версии 1803, curl встроен в систему и доступен из командной строки.
  • Для более старых версий или если curl по какой-то причине отсутствует, его можно скачать с официального сайта https://curl.se.
  • Также curl входит в состав Git Bash и Cygwin.

Установка через Chocolatey

choco install curl

Linux

На популярных дистрибутивах curl легко устанавливается через пакетный менеджер.

Ubuntu / Debian:

sudo apt update
sudo apt install curl

CentOS / RHEL:

sudo yum install curl

Alpine:

sudo apk add curl

Arch Linux:

sudo pacman -S curl

macOS

На macOS curl предустановлен, однако часто используется Homebrew для получения последней версии.

brew install curl

Если curl не работает, проверьте путь к исполняемому файлу с помощью:

which curl

Базовое использование curl

Просмотр содержимого веб-страницы:

curl https://example.com

Сохранение ответа в файл:

curl -o page.html https://example.com

Скачивание файла с оригинальным именем:

curl -O https://example.com/file.zip

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

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

Проверка HTTP-статуса:

curl -I https://example.com

Отправка POST-запроса с форм-данными:

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

Отправка JSON-запроса:

curl -X POST https://api.example.com/data \
  -H "Content-Type: application/json" \
  -d '{"name":"John","age":30}'

Авторизация:

curl -u admin:password https://example.com/secure

Полезные параметры curl

ПараметрОписание
-oСохраняет вывод в файл
-OСохраняет файл с оригинальным именем
-LСледует за редиректами
-IПоказывает только заголовки ответа
-XЯвно указывает HTTP-метод
-HДобавляет заголовки к запросу
-dПередаёт тело запроса (обычно используется с POST)
-uBasic аутентификация (логин:пароль)
-s"Silent mode" — скрывает индикаторы загрузки
-vПодробный вывод (debug mode)
--http2Принудительное использование HTTP/2
--compressedЗапрашивает сжатый ответ от сервера (gzip, deflate)

Расширенные примеры использования curl

Загрузка нескольких файлов:

curl -O https://example.com/file1.zip -O https://example.com/file2.zip

Отправка PUT-запроса:

curl -X PUT -d '{"title":"Updated"}' \
  -H "Content-Type: application/json" \
  https://api.example.com/item/1

Отправка запросов с куками:

curl -b "sessionid=abc123" https://example.com/profile

Сохранение куков для повторного использования:

curl -c cookies.txt https://example.com/login
curl -b cookies.txt https://example.com/dashboard

Загрузка FTP-файла:

curl -u user:pass ftp://ftp.example.com/file.txt -O

Интеграция curl в скрипты

curl удобно использовать в bash- или PowerShell-скриптах для автоматизации взаимодействия с API, загрузки данных или выполнения проверок.

Пример скрипта на bash для проверки доступности сайта:

#!/bin/bash
URL="https://example.com"
STATUS=$(curl -o /dev/null -s -w "%{http_code}" $URL)
 
if [ "$STATUS" -eq 200 ]; then
  echo "Сайт доступен."
else
  echo "Ошибка подключения. Код: $STATUS"
fi

Заключение

curl — один из самых полезных инструментов в арсенале технического специалиста. Он подходит как для простых задач вроде скачивания файла, так и для сложных сценариев: взаимодействия с API, тестирования REST-запросов, отладки и мониторинга.

Освоив curl, вы получите универсальный инструмент для работы с сетью — быстрый, надёжный и везде доступный.

9 минут чтения
Средний рейтинг статьи — 4.9

Настроить мониторинг за 30 секунд

Надежные оповещения о даунтаймах. Без ложных срабатываний