Что такое команда Curl и как ее использовать

Что такое команда Curl? Эта команда доступна в большинстве систем на базе Unix. Это сокращение от «URL-адрес клиента». Команды Curl предназначены для проверки возможности подключения к URL-адресам и в качестве отличного инструмента для передачи данных. Давайте узнаем, как вы можете начать его использовать.
Команда Curl поддерживает следующий список протоколов:
  • HTTP и HTTPS
  • FTP и FTPS
  • IMAP и IMAPS
  • POP3 и POP3S
  • SMB и SMBS
  • SFTP
  • SCP
  • ТЕЛНЕТ
  • Гофер
  • LDAP и LDAPS
  • SMTP и SMTPS
Это наиболее важные поддерживаемые протоколы, но есть и другие. Curl работает на libcurl, бесплатной библиотеке передачи URL-адресов на стороне клиента.

Проверить версию Curl

Прежде чем мы начнем работать с Curl, нам нужно войти в наш VPS. Если вам нужна помощь, ознакомьтесь с этим руководством по SSH.
Сначала давайте проверим, какая версия Curl доступна с помощью следующей команды:
curl --version
Результат покажет версию Curl список поддерживаемых протоколов. Теперь мы можем взглянуть на некоторые примеры команд Curl.

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

Давайте узнаем, как использовать команды Curl. Базовый синтаксис Curl выглядит так:
curl [OPTIONS] [URL]
Самым простым способом использования Curl является отображение содержимого страницы. В приведенном ниже примере будет отображаться домашняя веб-страница testdomain.com .
curl testdomain.com
Это отобразит полный исходный код домашней страницы для домена. Если протокол не указан, curl интерпретирует это как HTTP.

Параметры командного файла Curl

Команды Curl могут загружать файлы из удаленного места. Сделать это можно двумя способами:
  • -O сохранит файл в текущем рабочем каталоге с тем же именем, что и удаленный.
  • -o позволяет указать другое имя или местоположение файла
Пример этого показан ниже:
curl -O http://testdomain.com/testfile.tar.gz
Приведенная выше команда сохранит это как testfile.tar.gz .
curl -o newtestfile.tar.gz http://testdomain.com/testfile.tar.gz
Приведенная выше команда сохранит это как newtestfile.tar.gz .
Если по какой-то причине загрузка прервалась, вы можете возобновить ее с помощью curl. Вы можете сделать это с помощью следующей команды:
curl -C - -O  http://testdomain.com/testfile.tar.gz
Используя curl, мы также можем загрузить несколько файлов, как показано ниже:
curl -O http://testdomain.com/testfile.tar.gz -O http://mydomain.com/myfile.tar.gz
Если вы хотите загрузить несколько файлов с нескольких URL-адресов, перечислите их все в одном файле. Команды Curl можно комбинировать с xargs для загрузки различных URL-адресов.
Например, если у нас есть файл allUrls.txt, который содержит список всех URL-адресов для загрузки, то приведенный ниже пример можно использовать для загрузки всех файлов.
xargs –n 1 curl -O < allUrls.txt

Команды Curl для HTTP

Curl также можно использовать при наличии прокси-сервера. Если вы находитесь за прокси-сервером, который прослушивает порт 8090 на сайте sampleproxy.com, загрузите файлы, как показано ниже:
curl -x  sampleproxy.com:8090 -U username:password -O http:// testdomain.com/testfile.tar.gz
В приведенном выше примере вы можете пропустить -U имя пользователя: пароль, если прокси-сервер не требует метода аутентификации.
Типичный HTTP-запрос всегда будет содержать заголовок. Заголовок HTTP отправляет дополнительную информацию об удаленном веб-сервере вместе с фактическим запросом. Хотя с помощью инструментов разработчика браузера вы можете проверить информацию заголовка, вы можете проверить ее с помощью команды curl.
Ниже приведен пример того, как получить информацию заголовка с веб-сайта.
curl -I www.testdomain.com
Используя curl, вы можете делать запросы GET и POSTGET запрос будет выглядеть следующим образом :
curl http://mydomain.com
Пример запроса POST будет таким, как показано ниже:
curl –data “text=Hello” https://myDomain.com/firstPage.jsp
Здесь text = Hello - это параметр запроса POST. Это поведение было бы похоже на HTML-формы.
Вы также можете указать несколько методов HTTP в одной команде curl. Сделайте это с помощью опции –next , например:
curl –data “text=Hello” https://myDomain.com/firstPage.jsp --next https://myDomain.com/displayResult.jsp
Он содержит запрос POST, за которым следует запрос GET.
Каждый HTTP-запрос будет иметь пользовательский агент, который отправляется как часть запроса. Это указывает на сведения о веб-браузере клиента. По умолчанию запрос curl содержит curl и номер версии в качестве сведений об агенте пользователя. Пример вывода показан ниже:
“GET / HTTP/1.1” 200 “_” ”curl/7/29/0”
Вы можете изменить эту информацию пользовательского агента по умолчанию, используя следующую команду:
curl -I http://mydomain.com –-user-agent “My new Browser”
Теперь измененный вывод будет:
“GET / HTTP/1.1” 200 “_” ”My new Browser”

Curl для файлов cookie

Команды Curl можно использовать для проверки того, какие файлы cookie загружаются по любому URL-адресу. Итак, если вы заходите на https://www.samplewebsite.com , вы можете выводить данные в файл, сохранять файлы cookie и получать к ним доступ с помощью cat или редактора VIM.
Ниже приведен пример такой команды:
curl --cookie-jar Mycookies.txt https://www.samplewebsite.com /index.html -O
Точно так же, если у вас есть файлы cookie в файле, вы можете отправить его на веб-сайт. Пример такой команды показан ниже:
curl --cookie Mycookies.txt https://www. samplewebsite.com

Curl для FTP

Команда Curl поддерживает FTP! Вы можете использовать их для загрузки файлов с удаленного сервера.
curl -u username:password -O ftp://sampleftpserver/testfile.tar.gz
В приведенной выше команде ftp: // sampleftpserver - это FTP-сервер, который принимает соединения. Имя пользователя и пароль можно пропустить для анонимных FTP-подключений. Введите команду и наблюдайте, как заполняется индикатор выполнения.
Вы также можете загружать файлы с помощью следующей команды:
curl -u username:password -T testfile.tar.gz ftp://sampleftpserver
Опять же, мы можем пропустить имя пользователя и пароль для анонимных FTP-соединений.

Ограничение вывода локонов

Используя завиток, вы не можете знать, насколько большим будет результат. Вы можете ограничить пропускную способность, чтобы убедиться, что она не ограничивается curl.
Следующая команда ограничивает полосу пропускания до 100 КБ:
curl --limit-rate 100K http://testdomain.com/samplefile.tar.gz -O

Вывод

Curl - мощная и широко используемая команда. Это полезно, когда вы зависите от командной строки. Он имеет несколько опций и поддерживает несколько протоколов. Это отличная причина изучить эту команду!
Помните, что если вы хотите изучить некоторые расширенные команды, просто обратитесь к руководству, которое должно быть во всех версиях Unix:
man curl

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

Автору будет очень приятно узнать обратную связь о своем руководстве.

Комментариев 0