curl

Curl

curl (Client URL) — это консольная утилита для передачи данных по различным сетевым протоколам. Поддерживает:

  • HTTP/HTTPS;
  • FTP/FTPS;
  • SCP, SFTP;
  • SMTP, POP3, IMAP;
  • LDAP, DICT, TFTP, Telnet и др.

Используется для:

  • загрузки/выгрузки файлов;
  • тестирования API;
  • отладки веб‑сервисов;
  • автоматизации задач в скриптах;
  • проверки доступности ресурсов.

Базовый синтаксис

curl [опции] [URL]

Основные опции

ОпцияОписание
-OСохранить файл с оригинальным именем с сервера
-o <имя_файла>Сохранить файл под указанным именем
-IПолучить только HTTP‑заголовки (HEAD‑запрос)
-LСледовать редиректам (301, 302 и т. д.)
-H "Header"Добавить кастомный HTTP‑заголовок
-d "data"Отправить данные в POST/PUT‑запросе
-X <METHOD>Указать HTTP‑метод (GET, POST, PUT, DELETE и т. д.)
-u user:passАутентификация (Basic Auth)
-T <файл>Загрузить файл на сервер
-vПодробный вывод (verbose)
-sТихий режим (без прогресс‑бара)
--limit-rate <скорость>Ограничить скорость загрузки
-C -Продолжить прерванную загрузку
-b <файл>Отправить куки из файла или строки
-c <файл>Сохранить куки в файл
-x <прокси>Использовать прокси‑сервер

Примеры использования

1. Простой GET‑запрос

Получить содержимое страницы и вывести в терминал:

curl https://example.com

2. Загрузка файла

Сохранить файл с оригинальным именем:

curl -O https://example.com/file.zip

Сохранить с новым именем:

curl -o myfile.zip https://example.com/file.zip

3. Продолжение прерванной загрузки

curl -C - -O https://example.com/large-file.iso

4. Ограничение скорости загрузки

Ограничить скорость до 1 МБ/с:

curl --limit-rate 1M -O https://example.com/big-file.tar

5. POST‑запрос с данными

Отправить данные формы:

curl -d "name=John&age=30" https://api.example.com/users

Отправить JSON:

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"name": "John", "age": 30}' \
  https://api.example.com/users

6. Отправка файла через форму (multipart/form-data)

curl -F "file=@document.pdf" https://api.example.com/upload

7. Получение HTTP‑заголовков

curl -I https://example.com

8. Аутентификация

Basic Auth:

curl -u username:password https://api.example.com/secure

С токеном в заголовке:

curl -H "Authorization: Bearer YOUR_TOKEN" https://api.example.com/profile

9. Работа с куки

Сохранить куки в файл:

curl -c cookies.txt https://example.com/login

Использовать куки из файла:

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

10. Использование прокси

curl -x proxy.example.com:8080 https://example.com

11. Следование редиректам

curl -L https://httpbin.org/redirect/3

12. Загрузка нескольких файлов

curl -O https://example.com/file1.zip -O https://example.com/file2.zip

13. Загрузка с диапазоном URL (макросы)

Скачать файлы image1.jpg до image10.jpg:

curl https://example.com/images/image[1-10].jpg

14. Проверка SSL‑сертификата

curl -v https://example.com 2>&1 | grep "SSL certificate"

15. Загрузка файла на FTP

curl -T localfile.txt ftp://ftp.example.com/uploads/

Полезные советы

  • Для длинных команд используйте обратную косую черту (\) для переноса строк.
  • В Windows используйте двойные кавычки (") вместо одинарных (') для JSON и данных.
  • Всегда экранируйте специальные символы в URL.
  • Используйте -v для отладки сложных запросов.
  • Сохраняйте запросы в скрипты для автоматизации.

Хотите, я раскрою какой‑то конкретный пример подробнее или добавлю другие сценарии использования?Что такое curl

curl (Client URL) — это консольная утилита для передачи данных по различным сетевым протоколам. Поддерживает:

  • HTTP/HTTPS;
  • FTP/FTPS;
  • SCP, SFTP;
  • SMTP, POP3, IMAP;
  • LDAP, DICT, TFTP, Telnet и др.

Используется для:

  • загрузки/выгрузки файлов;
  • тестирования API;
  • отладки веб‑сервисов;
  • автоматизации задач в скриптах;
  • проверки доступности ресурсов.

Базовый синтаксис

curl [опции] [URL]

Основные опции

ОпцияОписание
-OСохранить файл с оригинальным именем с сервера
-o <имя_файла>Сохранить файл под указанным именем
-IПолучить только HTTP‑заголовки (HEAD‑запрос)
-LСледовать редиректам (301, 302 и т. д.)
-H "Header"Добавить кастомный HTTP‑заголовок
-d "data"Отправить данные в POST/PUT‑запросе
-X <METHOD>Указать HTTP‑метод (GET, POST, PUT, DELETE и т. д.)
-u user:passАутентификация (Basic Auth)
-T <файл>Загрузить файл на сервер
-vПодробный вывод (verbose)
-sТихий режим (без прогресс‑бара)
--limit-rate <скорость>Ограничить скорость загрузки
-C -Продолжить прерванную загрузку
-b <файл>Отправить куки из файла или строки
-c <файл>Сохранить куки в файл
-x <прокси>Использовать прокси‑сервер

Примеры использования

1. Простой GET‑запрос

Получить содержимое страницы и вывести в терминал:

curl https://example.com

2. Загрузка файла

Сохранить файл с оригинальным именем:

curl -O https://example.com/file.zip

Сохранить с новым именем:

curl -o myfile.zip https://example.com/file.zip

3. Продолжение прерванной загрузки

curl -C - -O https://example.com/large-file.iso

4. Ограничение скорости загрузки

Ограничить скорость до 1 МБ/с:

curl --limit-rate 1M -O https://example.com/big-file.tar

5. POST‑запрос с данными

Отправить данные формы:

curl -d "name=John&age=30" https://api.example.com/users

Отправить JSON:

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"name": "John", "age": 30}' \
  https://api.example.com/users

6. Отправка файла через форму (multipart/form-data)

curl -F "file=@document.pdf" https://api.example.com/upload

7. Получение HTTP‑заголовков

curl -I https://example.com

8. Аутентификация

Basic Auth:

curl -u username:password https://api.example.com/secure

С токеном в заголовке:

curl -H "Authorization: Bearer YOUR_TOKEN" https://api.example.com/profile

9. Работа с куки

Сохранить куки в файл:

curl -c cookies.txt https://example.com/login

Использовать куки из файла:

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

10. Использование прокси

curl -x proxy.example.com:8080 https://example.com

11. Следование редиректам

curl -L https://httpbin.org/redirect/3

12. Загрузка нескольких файлов

curl -O https://example.com/file1.zip -O https://example.com/file2.zip

13. Загрузка с диапазоном URL (макросы)

Скачать файлы image1.jpg до image10.jpg:

curl https://example.com/images/image[1-10].jpg

14. Проверка SSL‑сертификата

curl -v https://example.com 2>&1 | grep "SSL certificate"

15. Загрузка файла на FTP

curl -T localfile.txt ftp://ftp.example.com/uploads/<br>

Полезные советы

  • Для длинных команд используйте обратную косую черту (\) для переноса строк.
  • В Windows используйте двойные кавычки (") вместо одинарных (') для JSON и данных.
  • Всегда экранируйте специальные символы в URL.
  • Используйте -v для отладки сложных запросов.
  • Сохраняйте запросы в скрипты для автоматизации.