Команда ‘curl’

cURL, сокращение от «Client URL», — это инструмент командной строки для передачи данных с использованием различных протоколов. Это важный инструмент Linux, часто используемый для устранения неполадок с подключением.

По своей сути, cURL позволяет вам взаимодействовать с сервером, определяя его местоположение в виде URL-адреса. Вы можете вызвать команду Curl со своего терминала, не задумываясь о способах ее установки, поскольку она предустановлена ​​в большинстве операционных систем на базе Linux.

Существует огромное количество вариантов использования cURL:

  • FTP-загрузка
  • Поддержка прокси
  • SSL — соединения
  • HTTP

cURL также поддерживает использование много различных протоколов передачи данных: DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP. , SMTPS, TELNET и TFTP.

Скачать один файл

Следующая команда получит содержимое URL-адреса и отобразит его в STDOUT (т. е. на вашем терминале).

Чтобы сохранить выходные данные в файле, вы можете перенаправить их, как показано ниже. Это также отобразит дополнительную статистику загрузок.

Сохраните вывод cURL в файл

Мы можем сохранить результат команды cURL в файл, используя параметры -o/-O.

  • -o (строчная o) результат будет сохранен в имени файла, указанном в командной строке.
  • -O (заглавная O) имя файла в URL-адресе будет взято и будет использоваться в качестве имени файла для хранения результата

В результате страница gettext.html будет сохранена в файле с именем my-gettext.html. Также вы можете заметить, что запуск Curl с опцией -o отображает прогресс загрузки.

Когда вы используете cURL -O, он сохранит содержимое в файле с именем gettext.html на локальном компьютере.

Примечание. Когда Curl выводит данные в STDOUT ( в окно терминала), то индикатор выполнения не отображается, чтобы избежать путаницы при выводе.

Скрыть процесс загрузки

cURL, по умолчанию, показывает индикатор выполнения при сохранении данных в файл. Чтобы скрыть это, можно использовать опцию -s (—silent).

Если по какой-то причине скрыть процесс загрузки с помощью этой опции не получается, то имейте в виду это отображение перенаправляется в поток ошибок stderr. Можно этот поток отправить в /dev/null и это сработает аналогично опции -s.

Получение нескольких файлов одновременно.

cURL можеn загрузить несколько файлов за один раз, указав URL-адреса этих файлов в одной строке.

Следование по заголовкам HTTP.

По умолчанию, cURL не следует заголовкам местоположения HTTP, которые также называются перенаправлениями. Когда запрошенная веб-страница перемещается в другое место, в качестве ответа будет отправлен HTTP-заголовок местоположения, в котором будет указано, где находится фактическая веб-страница.

Но мы можем указать опцию -L, чтобы cURL следовал за перенаправлением.

Продолжение/восстановление загрузки

Используя опцию -C, вы можете продолжить загрузку, которая по какой-либо причине уже была остановлена. Это будет полезно, если вы загружаете большие файлы, и загрузка прерывается.

Например, запустим загрузку с помощью Curl и нажмем Ctrl-C, чтобы остановить ее.

Используя curl -C-, мы можем продолжить загрузку с того места, где она остановилась ранее.

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

Если вы находитесь за прокси-сервером, прослушивающим порт 8080 на proxy.yourdomain.com, выполните следующие действия:

где вы можете опустить -U user:password, если ваш прокси-сервер не требует аутентификации.

Запрос HTTP-заголовков

Заголовки HTTP позволяют удаленному веб-серверу отправлять дополнительную информацию о себе и фактическом запросе. Кроме того, это предоставляет клиенту подробную информацию о том, как обрабатывается запрос.

Чтобы запросить HTTP-заголовки с веб-сайта используйте опцию -I , например:

Загрузить файлы на FTP-сервер

cURL также может загружать файлы на FTP-сервер с опцией -T.

В результате приведенная выше команда загрузит файл с именем myfile.txt на FTP-сервер. Вы также можете загрузить несколько файлов одновременно, используя операции с диапазонами.

При желании мы можем использовать «-» ,чтобы получить входные данные из STDIN и передать их в файл на удаленном сервере.

Приведенная выше команда получит вводимые пользователем данные из стандартного ввода и сохранит содержимое на ftp-сервере под именем mynewfile.txt.

Загрузка файлов с FTP сервера

cURL также можно использовать для загрузки файлов с FTP-серверов. Но, если указанный путь FTP является каталогом, cURL выведет список файлов в указанном каталоге.

Приведенная выше команда загрузит файл mysql.php с ftp-сервера и сохранит его в локальном каталоге.

Здесь данный URL-адрес относится к каталогу. Таким образом, cURL выведет список всех файлов и каталогов по заданному URL.

Отображение/загрузка с использованием regex

cURL поддерживает регулярные выражения в виде указания диапазонов, указываемых в URL-адресе. Если указан диапазон, будут загружены файлы, соответствующие этому диапазону. Это будет полезно загружать пакеты с сайтов-зеркал FTP.

Приведенная выше команда выведет список всех пакетов из диапазона a-z в терминале.

Дополнительная информация с использованием опции Verbose и Trace.

Вы можете узнать ход загрузки в виде сообщений, используя опцию -v. Эта опция включает подробный режим, при котором будет выводиться дополнительная информация.

Вывод будет следующим:

Отправка почты, использую SMTP протокол

cURL также можно использовать для отправки почты по протоколу SMTP. Для этого, вам следует указать адрес отправителя, адрес получателя и IP-адрес почтового сервера.

После ввода вышеуказанной команды она будет ждать, пока пользователь предоставит отправляемые данные по почте. Итак, когда вы составили сообщение, введите «.» (точка), после чего электронное письмо будет отправлено.

Проверка поддержки HTTP/2

Вы можете использовать опцию —http2, чтобы проверить, поддерживает ли конкретный URL-адрес протокол HTTP/2. Если сайт поддерживает HTTP/2, вы увидите в заголовке HTTP/2.0 200 вместо HTTP/1.1 200.

Симуляция запросов HTTP

Метод GET используется для получения ресурсов по определенному URL-адресу. Например, простая команда curl https://www.gnu.org/ будет использовать GET в качестве метода HTTP по умолчанию. Однако его также можно указать явно, с помощью следующих опций —request GET или -X GET.

Метод POST отправляет информацию на веб-сервер. Это можно указать с помощью —request POST или -X POST.

Метод DELETE удаляет ресурс, связанный с определенным URL-адресом, с веб-сервера. Это можно указать с помощью —request DELETE или -X DELETE.

Метод PUT создает или заменяет ресурс на основе данных, которые клиент отправляет на веб-сервер. (например, создание новой веб-страницы или обновление существующей). Это можно указать с помощью —request PUT или -X PUT.

Создание POST-запроса с параметрами

Следующая команда отправит параметры Animal1 и Animal2 вместе с соответствующими значениями на https://yourdomain.com/animals.php.

Заключение

В этой статье рассказали о том, что такое команжа curl. Примеры в этой статье просты, но они демонстрируют наиболее часто используемые случаи использования cURL.

Was this helpful?

1 / 0

Добавить комментарий 0