cURL Basics — документация К тестеру

cURL - опции (параметры) командной строки

Текст термина (дословно из источника)

Все ключевые опции командной строки cURL — с примерами и пояснениями. Готовый справочник для разработчиков, DevOps и системных администраторов.

📥 1. Базовые опции: получение данных и сохранение

ОпцияСинтаксисОписание
-Ocurl -O https://site.com/file.zipСохраняет файл с оригинальным именем из URL.
-ocurl -o newname.zip https://site.com/file.zipСохраняет файл с заданным именем.
-Lcurl -L https://google.comАвтоматически следует за редиректами (301, 302).
-C -curl -C - -O https://site.com/bigfile.zipПродолжает прерванную загрузку.

📋 2. Работа с HTTP-заголовками

ОпцияСинтаксисОписание
-I / --headcurl -I https://site.comПолучает только HTTP-заголовки (без тела).
-icurl -i https://site.comВыводит и заголовки, и тело ответа.
-Acurl -A "Mozilla/5.0..." https://site.comМеняет User-Agent.
-Hcurl -H "X-Custom: value" https://site.comДобавляет произвольный заголовок.
-vcurl -v https://site.comПодробный вывод (debug-режим).

📤 3. Отправка данных (POST, PUT, формы)

ОпцияСинтаксисОписание
-Xcurl -X POST https://api.comЗадает HTTP-метод (GET, POST, PUT, DELETE).
-dcurl -d "name=John&age=30" -X POST https://api.comОтправляет POST-данные (application/x-www-form-urlencoded).
-d @filecurl -d @data.json -H "Content-Type: application/json" https://api.comЧитает данные для POST из файла.
-Fcurl -F "file=@photo.jpg" -F "comment=text" https://api.com/uploadИмитирует отправку веб-формы (multipart/form-data).
-Tcurl -T myfile.txt ftp://server.com/ --user login:passЗагружает файл на сервер.

🔐 4. Безопасность, сеть и аутентификация

ОпцияСинтаксисОписание
-ucurl -u username:password https://api.comБазовая HTTP-аутентификация (Basic Auth).
-kcurl -k https://self-signed.badssl.comИгнорирует проверку SSL-сертификата.
--cacertcurl --cacert mycert.pem https://site.comУказывает свой файл с CA-сертификатами.
-xcurl -x proxy.server.com:8080 https://google.comИспользует прокси-сервер.
--limit-ratecurl --limit-rate 100K -O https://file.comОграничивает скорость скачивания.

⚡ 5. Продвинутые возможности

🔁 Групповая обработка (Globbing)

curl -O "https://site.com/file[1-3].txt"
curl -O "https://site.com/image_[a-z].jpg"

🧩 Переменные (--variable и --expand)

curl --variable %API_TOKEN --expand-url "https://api.com/token/{{API_TOKEN}}/check"

⏱️ Измерение времени ответа

curl -o /dev/null -s -w 'Total: %{time_total}s\nSpeed: %{speed_download}\n' https://example.com/file

🍪 Работа с cookies

# Сохранить куки
curl -c cookies.txt -d "login=user&pass=123" https://site.com/login
# Использовать куки
curl -b cookies.txt https://site.com/profile
💡 Справка прямо в терминале:
curl --help — краткий список опций
curl --help all — все 200+ опций
curl --manual — полное руководство (man page)

📌 Практические примеры

✅ API-запрос с JSON и токеном

curl -X POST https://api.example.com/users \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{"name": "John", "email": "john@example.com"}'

✅ Скачивание с ограничением скорости

curl --limit-rate 500K -O https://example.com/largefile.iso

✅ Проверка только заголовков ответа

curl -I -L https://example.com