Что такое curl и как им пользоваться
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) |
-u | Basic аутентификация (логин:пароль) |
-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, вы получите универсальный инструмент для работы с сетью — быстрый, надёжный и везде доступный.
Настроить мониторинг за 30 секунд
Надежные оповещения о даунтаймах. Без ложных срабатываний