На главную

Справочники

Шпаргалка curl

Флаги, заголовки, формы, прокси, повторы и отладка — с подстановкой вашего адреса и токена.

Подставить свои значения

Значения подставляются прямо в команды — копируйте и вставляйте в терминал.

Показано 62 из 62 команд.

Основа

По умолчанию curl печатает тело в консоль и молчит об ошибках. -sS — «тихо, но об ошибке скажи» — стоит писать почти всегда.

  • curl https://example.com

    GET и тело ответа в консоль.

  • curl -sS https://example.com

    Без индикатора прогресса, но с сообщением об ошибке.

  • curl -i https://example.com

    Заголовки ответа вместе с телом.

  • curl -I https://example.com

    Только заголовки: запрос HEAD.

  • curl -L https://example.com

    Идти по редиректам; без этого 301 просто печатается и всё.

  • curl -o file.json https://example.com

    Сохранить в файл; -O — под именем из адреса.

  • curl -f https://example.com

    Ненулевой код возврата на HTTP-ошибку — обязательно в скриптах и CI.

  • curl --max-time 10 --connect-timeout 3 https://example.com

    Общий таймаут и таймаут соединения. Без них запрос может висеть вечно.

  • curl -G -d "q=поиск" -d "page=2" https://example.com

    Собрать query-строку из полей, не склеивая её руками.

  • curl --url-query "q=привет" https://example.com

    Значение экранируется автоматически (curl 7.87+).

Методы и тело запроса

  • curl -X POST https://example.com

    Задать метод явно. С -d метод и так становится POST.

  • curl -H "Content-Type: application/json" -d '{"a":1}' https://example.com

    JSON-тело руками.

  • curl --json '{"a":1}' https://example.com

    То же короче: сам ставит Content-Type и Accept (curl 7.82+).

  • curl -d @body.json -H "Content-Type: application/json" https://example.com

    Тело из файла: собака перед именем.

  • curl -d "user=alika&pass=secret" https://example.com

    Форма application/x-www-form-urlencoded.

  • curl --data-urlencode "text=привет мир" https://example.com

    Экранировать значение поля правильно.

  • curl -F "file=@photo.jpg" -F "title=Обложка" https://example.com

    Загрузка файла как multipart/form-data.

  • curl -F "file=@photo.jpg;type=image/jpeg;filename=cover.jpg" https://example.com

    Задать тип и имя файла в форме.

  • curl -X PUT -T file.txt https://example.com

    Залить файл целиком методом PUT.

  • curl -X DELETE https://example.com

    Удаление.

  • curl -d "" https://example.com

    POST без тела: без -d curl отправит GET.

Заголовки и авторизация

  • curl -H "Authorization: Bearer TOKEN" https://example.com

    Токен в заголовке.

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

    Basic-авторизация; пароль лучше не писать в командной строке — он попадёт в history.

  • curl -u user https://example.com

    Пароль спросят интерактивно.

  • curl -H "Accept: application/json" https://example.com

    Попросить конкретный формат ответа.

  • curl -A "Mozilla/5.0" https://example.com

    Свой User-Agent.

  • curl -e "https://example.com" https://example.com

    Заголовок Referer.

  • curl -H "Accept-Encoding: gzip" --compressed https://example.com

    Попросить сжатие и сразу распаковать.

  • curl -H "X-Debug:" https://example.com

    Двоеточие без значения убирает заголовок, который curl ставит сам.

  • curl -H "Host: internal.local" http://127.0.0.1

    Проверить виртуальный хост, не трогая DNS.

  • curl --resolve example.com:443:1.2.3.4 https://example.com

    Подменить резолв: проверить новый сервер до переключения DNS.

Куки и сессии

  • curl -c cookies.txt -d "user=a&pass=b" https://example.com

    Сохранить куки, полученные при входе.

  • curl -b cookies.txt https://example.com

    Отправить сохранённые куки.

  • curl -b "session=abc123" https://example.com

    Куки строкой, без файла.

  • curl -c cookies.txt -b cookies.txt -L https://example.com

    Полноценная сессия с переходами.

  • curl --cookie-jar - https://example.com

    Показать полученные куки прямо в консоли.

TLS, прокси, сеть

  • curl -k https://example.com

    Не проверять сертификат. Только для отладки — это отключает защиту от подмены.

  • curl --cacert ca.pem https://example.com

    Свой корневой сертификат вместо системного хранилища.

  • curl --cert client.pem --key client.key https://example.com

    Клиентский сертификат (mTLS).

  • curl -x http://proxy:3128 https://example.com

    HTTP-прокси; --socks5 host:port — SOCKS.

  • curl --noproxy "*" https://example.com

    Игнорировать переменные окружения с прокси.

  • curl --http1.1 https://example.com

    Заставить конкретную версию: --http2, --http3.

  • curl -4 https://example.com

    Только IPv4; -6 — только IPv6.

  • curl --interface eth0 https://example.com

    Запрос с конкретного интерфейса.

  • curl --tlsv1.2 --tls-max 1.2 https://example.com

    Зафиксировать версию TLS при разборе несовместимости.

Отладка и измерения

  • curl -v https://example.com

    Весь диалог: запрос, ответ, рукопожатие TLS.

  • curl --trace-ascii - https://example.com

    Ещё подробнее, включая тело, в удобочитаемом виде.

  • curl -sS -o /dev/null -w "%{http_code}\n" https://example.com

    Только код ответа.

  • curl -sS -o /dev/null -w "dns %{time_namelookup} tcp %{time_connect} tls %{time_appconnect} ttfb %{time_starttransfer} total %{time_total}\n" https://example.com

    Где именно уходит время: разбивка по этапам.

  • curl -w "%{size_download} байт, %{speed_download} Б/с\n" -o /dev/null -sS https://example.com

    Объём и скорость загрузки.

  • curl -sS -D headers.txt -o body.json https://example.com

    Заголовки и тело в разные файлы.

  • curl -sS https://example.com | jq .

    Читаемый JSON.

  • curl --write-out "%{redirect_url}\n" -o /dev/null -sS https://example.com

    Куда именно уводит редирект.

Загрузка файлов и повторы

  • curl -O -L https://example.com

    Скачать под именем из адреса, следуя редиректам.

  • curl -C - -O https://example.com

    Докачать прерванный файл.

  • curl --limit-rate 500k -O https://example.com

    Ограничить скорость, чтобы не забить канал.

  • curl -r 0-1023 -o head.bin https://example.com

    Скачать только первый килобайт — проверить сигнатуру файла.

  • curl --retry 5 --retry-delay 2 --retry-all-errors https://example.com

    Повторять при сбоях с паузой.

  • curl --retry 3 --retry-connrefused https://example.com

    Повторять и когда сервис ещё не поднялся — типичный healthcheck в CI.

  • curl -Z -O {url1} -O {url2}

    Параллельная загрузка нескольких адресов (curl 7.66+).

  • curl -K options.txt https://example.com

    Длинный набор флагов из файла — не захламляет команду.

  • curl --config <(echo header = "Authorization: Bearer TOKEN") https://example.com

    Спрятать токен от истории команд и от ps.