Утилита curl
Отредактирована 25.11.2025
Основные возможности curl:
1. HTTP/HTTPS запросы
# Простой GET запрос curl https://api.example.ru/data # GET запрос с сохранением результата в файл curl -o output.json https://api.example.ru/data # Следовать перенаправлениям curl -L https://api.example.ru/data
2. Отправка данных (POST, PUT)
# POST с form-date curl -X POST -d "name=John&age=30" https://api.example.ru/users # POST с JSON данными curl -X POST -H "Content-Type: application/json" \ -d '{"name":"John", "age":30}' \ https://api.example.ru/users # POST с файлом curl -x POST -F "file=@document.pdf" https://api.example.ru/upload
3. Работа с заголовками
# Показать заголовки ответа curl -I https://example.com # Отправить кастомные заголовки curl -H "Authorization: Bearer token123" \ -H "User-Agent: MyApp/1.0" \ https://api.example.com/data
4. Аутентификация
# Базовая аутентификация curl -u username:password https://api.example.ru # Аутентификация с токеном curl -H "Authorization: Token your-token" https://api.example.ru
Практические примеры использования:
1. Тестирование API
# Проверка здоровья сервиса curl -X GET https://api.service.ru/health # Создание ресурса через API curl -X POST -H "Content-Type: application/json" \ -d '{"title":"Test", "completed":false}' \ https://jsonplaceholder.typicode.com/todos
2. Загрузка файлов
# Скачать файл curl -O https://example.ru/file.zip # Продолжить прерванную загрузку curl -C - -O https://example.ru/large-file.iso
3. Отладка и диагностика
# Подробный вывод (verbose) curl -v https://api.example.ru # Только заголовки curl -I https://example.ru # Измерить время запроса curl -w "@curl-format.txt" -o /dev/null -s https://example.ru
4. Работа с cookies
# Сохранить cookies в файл curl -c cookies.txt https://example.ru/login # Использовать сохранённые cookies curl -b cookies.txt https://example.ru/dashboard
Ключевые параметры:
- -X - метод HTTP (GET, POST, PUT, DELETE);
- -H - добавить заголовок;
- -d - данные для отправки (POST);
- -F - отправка form-data;
- -u - аутентификация;
- -o - сохранить вывод в файл;
- -O - сохранить с оригинальным именем;
- -L - следовать перенаправлениям;
- -v - подробный вывод;
- -I - только заголовки ответа (где -I это i с заглавной буквы);
- -c - сохранить cookies;
- -b - отправить cookies.
Поддерживаемые протоколы:
- HTTP/HTTPS
- FTP/FTPS
- SCP/SFTP
- LDAP
- SMTP
- POP3
- IMAP
- и многие другие
Области применения:
- Тестирование REST API
- Автоматизация веб-запросов
- Отладка сетевых проблем
- Веб-скрапинг
- Мониторинг доступности сервисов
- Интеграция в скрипты и CI/CD