Протокол HTTP
Теория: Curl
В этом уроке мы познакомимся с утилитой curl — мощным инструментом для выполнения HTTP-запросов. Эта утилита командной строки позволяет управлять различными параметрами запросов с помощью флагов, что значительно упрощает процесс взаимодействия с веб-сервисами.
Одним из главных преимуществ curl является то, что нам не нужно заранее устанавливать соединение и вручную формировать сырой запрос. Вместо этого мы можем просто определить необходимые параметры, и curl автоматически отправит все нужные заголовки.
Утилита широко распространена и активно используется для скачивания файлов и в скриптах автоматизации. В документации многих сервисов можно найти примеры выполнения запросов с использованием curl.
В состав некоторых операционных систем curl уже включена по умолчанию. Если у вас ее нет, то установите ее по нашей инструкции
Самый простой способ использовать curl — это выполнить GET-запрос к какому-то сайту используя полный адрес:
В таком варианте curl распечатает на экран тело ответа — в нашем случае это строка Done!. Его можно сохранить в файл, выполнив перенаправление:
Если мы хотим посмотреть заголовки ответа, то запрос станет таким:
В таком случае curl отправляет HEAD-запрос, на который сервер должен вернуть заголовки без тела. По спецификации заголовки, возвращаемые в случае HEAD-запроса, должны совпадать с заголовками GET-запроса. Но на практике ответ зависит от настроек сервера. Поэтому для точности лучше выполнить GET-запрос:
Если нужно увидеть не только ответ, но и запрос, то подойдет флаг -v или его полная версия --verbose. Он покажет все, включая тело ответа:
При работе с curl мы можем указывать различные заголовки запроса, чтобы передать дополнительную информацию на сервер. Для этого используется флаг -H или --header.
Например, если мы хотим указать, что данные, которые мы отправляем, имеют формат JSON, мы можем использовать следующую команду:
Когда мы отправляем данные на сервер, например, при создании нового пользователя, мы можем использовать флаг -d для указания тела запроса:
.png)














