Curl поддерживает более 380 параметров командной строки, которые можно использовать для настройки каждого аспекта работы Curl. Curl разработан для работы без участия пользователя, поддерживает множество популярных интернет-протоколов и работает на большинстве современных операционных систем. Возможности Curl безграничны, и в большом количестве флагов легко заблудиться. В этой статье приведен список наиболее часто используемых флагов Curl с краткими описаниями, которые вы можете использовать в своих проектах.
Что такое Curl?
Curl - это утилита командной строки для Linux, Windows и Mac, которая обеспечивает базовые возможности работы с URL и передачи файлов. Он поддерживает следующие протоколы: FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, LDAP, POP3, IMAP и SMTP. Curl отлично подходит для имитации действий пользователя на страницах, тестирования API и других операций с URL, имеет встроенную поддержку SSL, прокси-серверов, проверки сертификатов, HTTP Cookies и аутентификации пользователей.
Что такое флаг в Curl?
Флаг - это параметр командной строки, обозначающий определенное действие в Curl. Curl имеет более трехсот параметров командной строки, и со временем их количество увеличивается. Вы можете добавить перечисленные флаги к команде Curl и ввести URL. Флаги могут быть короткими (например, o, -L и т. д.) или расширенными (например, --verbose). Флаги могут быть с одинарным или двойным тире.
Как посмотреть список параметров в Curl?
Чтобы определить, какие параметры нужно использовать в конкретном действии, вы можете заставить Curl перечислить их. Во-первых, команда Curl --help или -h предоставит вам список наиболее важных и часто используемых параметров. Используйте curl -h [category], чтобы перечислить все существующие типы, или curl -h [all], чтобы перечислить все доступные опции. Curl может объединять команды, добавляя перечисленные флаги и вводя URL.
1 2 | curl --help curl -h |
1 | curl -h [category] |
1 | curl -h [all] |
20 самых популярных флагов Curl для повседневного использования
В таблице ниже представлены не все опции Curl, но некоторые из них вы будете использовать в своих проектах.
Флаги | Описание | Синтаксис |
-O | Скачайте файл и сохраните его под оригинальным именем | curl -O [URL] |
-o | Загрузить файл и сохранить его под другим именем | curl -o [file name] [URL] |
-X | Укажите метод HTTP, который будет использоваться при отправке запроса | curl -X [method] [URL] |
-I или -head | Вывести заголовок без тела документа | curl -I [URL] |
-d | Укажите данные для отправки на сервер | curl -d "key1=value1&key2=value2" [URL] |
-k или -insecure | Игнорировать ошибки сертификата SSL | curl -k [URL] |
-u или --user | Укажите данные для аутентификации, передав пару логин-пароль | curl -u [user:password] [URL] |
-F | Отправить данные формы в виде POST-запроса | curl -F @field_name=@path/to/myFile |
--cookie | Отправлять HTTP-куки | curl --cookie "Name=Value" [URL] |
-x или --proxy | Использовать прокси-сервер для загрузки файлов | curl -x "[protocol://][host][:port]" [URL] [options] |
--limit-rate | Ограничить скорость загрузки | curl --limit-rate [speed] -O [URL] |
-L или --location | Следить за перенаправлением Curl с помощью заголовка HTTP Location | curl -L [URL] |
-v | Делает Curl многословным | curl -v [URL] |
-m или --max-time | Установить ограничение в секундах для всей операции | curl -m [SECONDS] [URL] |
--connect-timeout | Установить ограничение в секундах для запроса на подключение | curl --connect-timeout [SECONDS] [URL] |
-T | Передает указанный локальный файл на удаленный URL | curl -T [file name] [URL] |
-H или --header | Добавить дополнительный заголовок HTTP-запроса | curl -H "X-Header: value" [URL] |
-D | Сохранить HTTP-заголовки, которые сайт отправляет обратно | curl -D [URL] |
-A или --user-agent | Установить строку User-Agent | curl -A "value" [URL] |
-C | Возобновить прерванную или намеренно остановленную загрузку | curl -C [OFFSET] -O [URL] |
Заключение
Curl - это мощный инструмент командной строки, совместимый практически со всеми операционными системами и подключенными устройствами. Curl полезен для тестирования API, содержит подробную информацию о том, что было отправлено/получено на сервер, и имеет хорошую систему регистрации ошибок. В статье показаны только основные флаги, так как они предлагают гораздо больше возможностей. Когда вы закончите практиковаться с флагами командной строки, описанными в этом руководстве, вы можете перейти на страницу Curl man, чтобы узнать обо всех возможностях флагов.