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для отладки сложных запросов. - Сохраняйте запросы в скрипты для автоматизации.