Skip to content

Флаги curl объяснённые

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

curl отправляет HTTP-запрос и печатает тело ответа. Основная сила — во флагах: они выбирают метод, прикрепляют заголовки и данные, отвечают за аутентификацию и решают, что будет выведено. Длинная форма показана там, где она яснее; короткая форма — одна буква. Заключайте URL в кавычки, чтобы оболочка не съела строку запроса.

Справочная таблица · 54 записи
54 of 54 rows
Форма запроса
Задаёт метод HTTP.curl -X POST https://api.test
Добавляет заголовок запроса.curl -H "Accept: application/json" URL
Отправляет тело (задаёт POST и тип содержимого по умолчанию).curl -d "name=Ada" URL
Добавляет значения -d как query-параметры к GET.curl -G -d "q=hi" URL
Отправляет multipart-данные формы (загрузка файлов).curl -F "file=@photo.png" URL
Отправляет данные формы с применённым URL-кодированием.curl --data-urlencode "name=Ada Lovelace" URL
Загружает файл методом PUT.curl -T big.zip URL
Дописывает загрузку в конец удалённого файла вместо замены.curl -a -T log.txt ftp://server.test/logs/log.txt
JSON и API
Отправляет JSON с правильным типом содержимого.curl -H "Content-Type: application/json" -d '{"a":1}' URL
Отправляет содержимое файла как тело.curl -d @body.json URL
Отправляет JSON без ручной установки заголовков (curl 7.82+).curl --json '{"a":1}' URL
Аутентификация
HTTP Basic-аутентификация с именем пользователя и паролем.curl -u ada:s3cr3t URL
Отправляет OAuth-токен bearer.curl --oauth2-bearer TOKEN URL
Отправляет любую схему токена вручную.curl -H "Authorization: Bearer TOKEN" URL
Предъявляет клиентский сертификат и его ключ для mutual TLS.curl --cert client.pem --key key.pem URL
Проверяет сервер по одному файлу набора CA.curl --cacert ca.pem URL
Проверяет сервер по каталогу с CA.curl --capath /etc/ssl/certs URL
Отправляет запрос через прокси.curl -x http://proxy.test:8080 URL
Пропускает проверку TLS только для прокси-участка.curl -x https://proxy.test:8443 --proxy-insecure URL
Требует TLS 1.3 как минимальную версию.curl --tlsv1.3 URL
Идентификация
Отправляет собственную строку User-Agent.curl -A "Mozilla/5.0" URL
Отправляет заголовок Referer.curl -e https://example.com/page URL
Отправляет cookie вместе с запросом.curl -b "session=abc123" URL
Сохраняет cookie ответа в файл.curl -c cookies.txt URL
Вывод
Записывает тело в файл.curl -o page.html URL
Сохраняет тело под удалённым именем файла.curl -O https://site/file.tgz
Печатает заголовки ответа над телом.curl -i URL
Получает только заголовки (отправляет HEAD).curl -I URL
Скрывает индикатор прогресса и ошибки.curl -s URL
Печатает строку формата после тела (тайминги, статус).curl -w "%{http_code}\n" -o /dev/null URL
Завершается с ненулевым кодом при ошибках HTTP и пропускает тело ошибки.curl -f URL
Завершается с ненулевым кодом при ошибках HTTP, но всё же печатает тело.curl --fail-with-body URL
Именует сохранённый файл по заголовку Content-Disposition.curl -OJ URL
Возобновляет прерванную передачу с места остановки.curl -C - -O URL
Показывает полосу прогресса вместо стандартного индикатора.curl -# -O URL
Печатает ошибки даже в тихом режиме.curl -sS URL
Записывает заголовки ответа в файл.curl -D headers.txt URL
Запрашивает сжатый ответ и распаковывает его.curl --compressed URL
Создаёт недостающие каталоги в пути -o.curl -o cache/api/data.json --create-dirs URL
Перенаправления и соединение
Следует за перенаправлениями 3xx.curl -L URL
Максимум секунд ожидания TCP-соединения.curl --connect-timeout 5 URL
Максимум секунд на весь запрос.curl --max-time 30 URL
Пропускает проверку TLS-сертификата.curl -k https://self-signed.test
Повторяет временные ошибки до N раз.curl --retry 3 URL
Повторяет при любой ошибке, не только при временных.curl --retry 3 --retry-all-errors URL
Форсирует соединение через IPv4 или IPv6.curl -4 URL
Сопоставляет хост и порт с адресом, минуя DNS.curl --resolve api.test:443:127.0.0.1 https://api.test
Привязывает передачу к сетевому интерфейсу или адресу.curl --interface eth0 URL
Передаёт несколько URL одновременно.curl -Z URL1 URL2
Использует HTTP/2 или HTTP/3 для передачи.curl --http3 URL
Стримит тело по мере поступления вместо буферизации.curl -N URL
Читает остальные флаги из файла конфигурации.curl -K flags.cfg URL
Отладка
Печатает весь обмен запроса и ответа.curl -v URL
Шестнадцатеричный дамп всего отправленного и полученного.curl --trace - URL