10 команд curl, которые вам следует знать
Команда Mail.ru Cloud Solutions перевела статью, автор которой составил краткий справочник часто используемых команд curl для протоколов HTTP/HTTPS. Это не замена официального руководства по cURL, скорее, краткий конспект.
cURL (расшифровывается как Client URL) — программное обеспечение, которое предоставляет библиотеку libcurl и инструмент командной строки curl. Возможности cURL огромны, во многих опциях легко потеряться.
curl — инструмент для передачи данных с сервера или на него, при этом используется один из поддерживаемых протоколов: DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET и TFTP. Команда предназначена для работы без взаимодействия с пользователем.
Команда curl запускается из командной строки и предустановлена в большинстве дистрибутивов Linux.
Варианты применения:
- доступ без браузера;
- внутри shell-скриптов;
- для тестирования API.
В основном я использовал curl для тестирования API, иногда просто вставляя команды, которые нашел в интернете. Но я хочу разобраться в curl и лучше понять его особенности. Так что поделюсь некоторыми командами, с которыми столкнулся во время работы.
Запрос страницы
Если никакие аргументы не указаны, то команда curl выполняет HTTP-запрос get и отображает статическое содержимое страницы. Оно аналогично тому, что мы видим при просмотре исходного кода в браузере.
Скачивание файла
Есть два варианта этой команды.
- Скачать файл и сохранить под оригинальным именем (testfile.tar.gz).
- Скачать файл и сохранить под другим именем.
Еще можно скачать несколько файлов одной командой, хотя в мануале так делать не рекомендуют.
Получение заголовков HTTP
Если вы хотите посмотреть, какие заголовки отдает сервер, то можно использовать опции -I или -head. Они позволяют получить заголовок без тела документа.
Игнорирование ошибки неправильных или самоподписанных сертификатов
Когда вы тестируете веб-приложение или API, то в вашем тестовом окружении могут быть самоподписанные или неправильные SSL-сертификаты. По умолчанию curl верифицирует все сертификаты. Чтобы он не выдавал ошибку о неверных сертификатах и устанавливал соединение для тестирования, используйте опцию -k или -insecure.
Отправка POST-запроса
Иногда для тестирования API нужно отправить какие-либо данные, обычно это делают через POST-запрос. Если вы делаете POST-запрос при помощи curl, то можете отправить данные либо в виде списка имя=значение, либо в виде JSON.
- Запрос в виде списка имя=значение.
- Запрос в виде JSON.
Параметр --data эквивалентен -d, оба указывают curl выполнить HTTP POST-запрос.
Указание типа запроса
Если curl не передаются никакие данные, то по умолчанию он выполняет HTTP GET запрос. Но если вам, например, нужно обновить данные, а не пересоздать их заново, то curl поддерживает опции, указывающие тип запроса. Параметры -x или --request позволяют указать тип HTTP-запроса, который используется для сообщения с сервером.
Использование авторизации
API защищено авторизацией по логину-паролю — вы можете передать пару логин-пароль, используя параметр -u или --user. Если просто передать логин, то curl запросит пароль в командной строке. Используете параметр несколько раз — для авторизации на сервер будет передано только последнее значение.
Управление резольвом имен
Вы хотите протестировать API перед развертыванием и перенаправить запрос на тестовую машину — это можно сделать, указав альтернативный резольв имени эндпоинта для данного запроса. Все работает эквивалентно пропиcыванию хоста в /etc/hosts.
Загрузка файла
О возможности загрузки файла через curl я узнал недавно. Не был уверен, что это возможно, но, по всей видимости, это так: curl с опцией -F эмулирует отправку заполненной формы, когда пользователь нажимает кнопку отправки. Опция указывает curl передавать данные в виде POST-запроса, используя multipart / form-data Content-Type.
Вы можете загрузить несколько файлов, повторяя параметр -F.
Измерение продолжительности соединения
Вы можете использовать опцию -w для отображения информации в stdout после завершения передачи. Она поддерживает отображение набора переменных. Например, можно узнать общее время, которое потребовалось для успешного выполнения запроса. Это удобно, если вам нужно определить время загрузки или скачивания с помощью curl.
Это некоторые из опций, которые можно использовать с curl. Надеюсь, информация была вам полезна и статья понравилась.
Удачи!
Что еще почитать:
Поэтому автомобиль её протаранил.
И на 38% выше, чем у кадров без него.
Игорь Шаповалов, директор по маркетингу компании «Лебер», выступил экспертом нового выпуска программы «Бизнес-вектор» на РБК Отрасли. В эфире он рассказал о ключевых трендах мебельной промышленности и поделился опытом Лебер Мебель в создании функциональных офисных решений.
Сегодня я управляю группой компаний с оборотом 650 миллионов в год и могу без дергающегося глаза вспомнить, что полезного я вынесла из этой истории.
Привели примеры пользователей и собственные тесты: постеры с текстом, генерация персонажей, предметов и рисунков.
По словам CNN, продукция с маркировкой «Сделано в России» — новый тренд в КНР.
К нему пришли ведомства в стране, но официально правила пока не меняли.
С 1 апреля 2025 года семейная ипотека распространяется и на вторичку. Разбираем новые условия: кто может взять льготный кредит, в каких городах и домах.
Аналитики объясняют укрепление рубля в том числе повышенным предложением на валютном рынке и новостями геополитики.
Обновлено в 17:52 мск. ЦБ установил курс доллара ниже 85 рублей впервые с августа 2024 года. 18 марта 2025 года официальный курс доллара составит 84,31 рубля, курс евро — 90,84 рубля.
Только поправь при получении заголовков -head на --head.
Ip addr delete