CURL или же client URL представляет собой многофункциональную утилиту, позволяющую общаться с серверами по протоколам HTTP, HTTPS, FTP, FTPS, SCP, SSH и многими другими. Основное применение пользователи нашли в использовании утилиты для запросов к веб-серверам. Однако функционал утилиты, благодаря библиотеке libcurl, оставляет большой размах для возможностей.
Как установить curl?
Установка стандартна, как и для любого пакета Linux подобной системы. Необходимо сначала обновить репозиторий, если вы используете apt-менеджер, то пропишите команду:
apt install curl -y
Для RPM-подобного менеджера пакетов используйте соответствующие команды:
dnf install curl -y
Обновив репозитории и инсталлировав утилиту, обратимся к подсказке и разделим справку на категории или же протоколы работы:
В данном списке представлен полный перечень протоколов, которые могут использоваться для коммуникации с серверами. Если заменить в предыдущей команде слово category на один из приведенных пунктов, то откроется подробное руководство по использованию каждой из опции:
Команда выше, как пример поиска команд для работы по http протоколу.
Основные примеры работы
Рассмотрим основные примеры для работы с утилитой, но перед этим определимся с используемым синтаксисом:
Основная команда для вызова утилиты curl, ее основные опции и сам URL, по которому происходит обращение.
Как скачать файл с помощью Curl?
По умолчанию, при обращении к сайту curl формирует GET-запрос, который и запрашивает у сервера заголовки и сам файл. Для сохранения файла пропишем команду:
Обратите внимание, что для скачивания с сайта, у которого может быть самоподписной сертификат необходимо дополнительно использовать опцию -k
После скачивания файл сохранится в директорию /tmp/ под названием articles.pdf, за что отвечает опция -o. А другая -l означает, что если сайт ответит кодом 301, 302 и т.д. о перенаправлении, то curl автоматически перейдет на нужный сайт и скачает файл. Файл так же можно оставить с оригинальным названием и скачать в текущую директорию:
Однако если вы хотите вывести файл прямиком в терминал, для этого вместо названия файла оставьте тире:
Подобное решение позволит быстрее просмотреть содержимое файла с его заголовками и метаописанием, что может потребоваться для проверки содержимого файла. Например, pdf на наличие встроенных скриптов.
Все действия были выполнены в среде облачного сервера от Serverspace, для этого перейдем к созданию сервера, на любой из двух платформ vStack cloud или же VMware cloud. Нажмем на кнопку Создать сервер и выберем конфигурацию, подходящую под наши задачи, затем нажмем кнопку Создать:
Потребуется некоторое время для развертывания серверных мощностей. После чего вы можете подключиться любым из удобных способов. На основе предлагаемы VPS и VDS серверов, так же можно развернуть уже свою виртуальную инфраструктуру. Вернемся к обзору утилиты.
Как просмотреть заголовки с помощью Curl?
Перед тем скачать тот или иной файл или провести кэширование, необходимо собрать информацию о странице/файле, к которому будет происходить обращение. К примеру, на сайте хостится файл формата pdf и необходимо узнать его: наименование, размер и данные о последней модификации файла. Для этого пропишем команду следующего вида:
В поле content-type по стандарту MIME файл классифицирован, как pdf. В следующем поле, last-modified указана последняя дата изменения и в поле content-length размер тела документа.
Продолжение прерванного скачивания
Допустим, мы начали загрузку файла после чего случайно ее отменили. Если в заголовках ответа от сервера присутствует строка Accept-Ranges: bytes, соответственно, мы можем воспользоваться функцией продолжения прерванного скачивания. Для этого к обычному списку опций при загрузке -Lko необходимо дописать параметр -с, который позволит продолжить загрузку:
После чего файл будет сохранен в директорию, в которой сейчас находится пользователь.
Как изменить User-Agent или другой заголовок?
В процессе работы с веб-сервером может понадобиться имплементация кастомных заголовков. Для такого в curl существует опция -H, которая позволит добавить заголовок с значением:
Для аналогичной кастомизации User-Agent поля существует отдельная опция -A. Ее необходимо указать с новым значением агента, к примеру, команда может выглядеть так:
Использование CURL облегчает выполнение различных сетевых операций и предоставляет пользователю гибкость и контроль при взаимодействии с серверами. Благодаря ее возможностям, пользователи могут эффективно выполнять разнообразные задачи, связанные с обменом данными.