- Что такое команда Curl?
- Установка Curl
- Основной синтаксис команды Curl
- Загрузка веб-страницы при помощи команды Curl
- Сохранение полученных данных в файл
- Отправка данных на сервер
- Настройка заголовков HTTP
- Следование за переадресацией
- Отправка POST-запросов с помощью команды Curl
- Загрузка файлов с помощью PUT
- Аутентификация с помощью Basic Auth
- Использование SSL/TLS с командой curl
- Использование прокси-серверов
- Опции (параметры) команды Curl
Добро пожаловать в мир Curl, универсального инструмента командной строки, который позволяет с легкостью передавать данные на серверы и обратно. Будь вы разработчик, системный администратор или просто любопытный пользователь. Команда Curl — незаменимый инструмент в вашем арсенале. С помощью Curl вы можете выполнять широкий спектр задач, от загрузки файлов до тестирования API и многого другого. В этой статье мы рассмотрим все тонкости Curl включая его наиболее полезные функций. И как вы можете использовать его для быстрого и эффективного выполнения задач. Будь вы профессионалом или новичком в командной строке, давайте погрузимся в мир Curl и посмотрим, что он может предложить!
Что такое команда Curl?
Curl — это инструмент командной строки для передачи данных на серверы и обратно по различным протоколам. Это универсальный инструмент, который можно использовать для отправки и получения данных через Интернет. Он широко используется в Linux и других подобных операционных системах.
Curl поддерживает широкий спектр протоколов, включая HTTP, HTTPS, FTP, SMTP, POP3, IMAP и многие другие. Он предназначен для работы с URL адресами и может использоваться для выполнения различных операций с ними, включая отправку запросов GET и POST, установку заголовков, загрузку и скачивание файлов.
Установка Curl
Curl обычно предустановлен в большинстве дистрибутивов Linux. Но если это не так, вы можете установить его с помощью менеджера пакетов вашего дистрибутива. Например, для установки Curl в дистрибутивах на базе Debian требуется выполнить следующую команду.
sudo apt install curl
А для дистрибутивов на базе Red Hat, таких как CentOS требуется выполнить эту команду.
sudo dnf install curl
Мы писали статью «Curl команда не найдена» и в ней описывали как установить Curl в различные дистрибутивы ссылка на статью.
После установки вы можете начать использовать Curl для отправки и получения данных через Интернет.
Основной синтаксис команды Curl
Основной синтаксис команды curl следующий.
curl [options] [URL]
options
— это различные параметры командной строки, которые вы можете использовать для изменения поведения команды curl. А URL
— это URL сервера, к которому вы хотите подключиться. Если вы не укажете никаких опций, curl просто получит содержимое URL и отобразит его в командной строке.
Загрузка веб-страницы при помощи команды Curl
Чтобы получить веб-страницу с помощью команды curl, просто укажите URL страницы в качестве аргумента. Например, чтобы получить главную страницу Setewik, вы можете использовать следующую команду.
Данная команда позволит получить HTML содержимое главной страницы linuxwin.ru и отобразит эти данные в вашем терминале.
Сохранение полученных данных в файл
Если вам необходимо сохранить полученные данные команды curl в файл. То можно использовать опцию -o
или --output
, за которой следует имя выходного файла. Например чтобы сохранить домашнюю страницу setiwik в файл с именем setiwik.html, вы можете использовать следующую команду.
curl -o setiwik.html https://linuxwin.ru
Ланная команда позволит сохранить HTML содержимое домашней страницы Setiwik в файл с именем setiwik.html. Кстати данный файл сохраняется по умолчанию в домашний каталог.
Отправка данных на сервер
Curl также можно использовать и для отправки данных на сервер. С помощью различных методов HTTP, таких как POST, PUT и DELETE. Чтобы отправить данные методом POST, вы можете использовать опцию -d
или --data
, за которой следуют данные, которые вы хотите отправить. Например, чтобы отправить данные username=admin&password=admin12345 на сервер с помощью метода POST, вы можете использовать следующую команду.
curl -d "username=admin&password=admin12345" https://linuxwin.ru/login
Данная команда отправит данные на сервер по адресу URL https://linuxwin.ru/login, используя метод POST.
Настройка заголовков HTTP
Вы можете установить различные HTTP заголовки с помощью команды curl. Это позволит изменить поведение запроса. Чтобы установить HTTP заголовок, вы можете использовать опцию -H
или --header
, за которой следует имя и значение заголовка. Например, чтобы установить заголовок User-Agent на Mozilla/5.0 в запросе, вы можете использовать следующую команду.
curl -H "User-Agent: Mozilla/5.0" https://linuxwin.ru
Эта команда скажет серверу что вы используете браузер с движком Mozilla/5.0.
Следование за переадресацией
Если сервер возвращает ответ с переадресацией (код 3xx), то curl по умолчанию не будет следовать на переадресованный адрес. Чтобы включить автоматическое следование переадресации, вы можете использовать опцию -L
или --location
. Например чтобы следить за перенаправлениями при получении веб-страницы, вы можете использовать следующую команду:
curl -L https://linuxwin.ru
Отправка POST-запросов с помощью команды Curl
Curl можно использовать для отправки POST запросов на удаленный сервер. Вот пример команды для отправки POST запроса на удаленный сервер.
curl -X POST -d "name=Meilana&age=27" https://linuxwin.ru
Эта команда Curl -X POST, указывает, что мы используем метод HTTP POST. -d «name=Meilana&age=27» указывает данные, которые мы хотим отправить в POST запросе. https://linuxwin.ru — это URL сервера, на который мы отправляем POST-запрос.
Мы также можем использовать опцию -H
для установки заголовков в POST запросе. Например, чтобы установить заголовок Content-Type на application/json, мы можем использовать следующую команду.
curl -X POST -H "Content-Type: application/json" -d '{"name": "Meilana", "age": 27}' https://linuxwin.ru
Загрузка файлов с помощью PUT
Команду Curl также можно использовать для загрузки файлов с помощью HTTP PUT запросов. Это полезно для передачи файлов на сервер, например, для загрузки изображения или документа.
Чтобы загрузить файл с помощью curl, используйте опцию -T
, за которой следует путь к файлу.
curl -X PUT https://linuxwin.ru/upload -T ~/Documents/file.pdf
В этом примере мы загружаем файл file.pdf, расположенный в каталоге ~/Documents/, на URL https://linuxwin.ru/upload с помощью метода PUT.
Аутентификация с помощью Basic Auth
Команда Curl поддерживает HTTP Basic Authentication, которая является простой схемой аутентификации. Она использует имя пользователя и пароль. Учетные данные Basic Auth отправляются в HTTP заголовках с каждым запросом.
Для аутентификации с помощью Basic Auth используйте параметр -u
, за которым следует имя пользователя и пароль, разделенные двоеточием.
curl -u Admin:PassAdmin https://linuxwin.ru/protected
В этом примере мы аутентифицируемся с помощью имени пользователя Admin
и пароля PassAdmin
для доступа к URL https://linuxwin.ru/protected.
Использование SSL/TLS с командой curl
Curl также можно использовать с зашифрованными соединениями SSL/TLS. По умолчанию curl проверяет сертификат сервера, используя доверенные центры сертификации системы. Однако можно отключить проверку сертификатов с помощью опции -k
. Мы не рекомендуем это делать.
Чтобы использовать SSL/TLS, просто используйте схему URL https:// вместо http://:
curl https://example.com
Использование прокси-серверов
Команда Curl может использоваться с прокси-серверами. Укажите параметр --proxy
, за которым следует URL прокси-сервера.
curl --proxy http://proxy.example.com http://linuxwin.ru
В этом примере мы используем прокси-сервер по адресу http://proxy.example.com для доступа к URL http://linuxwin.ru.
Опции (параметры) команды Curl
Здесь приведена подробная таблица опций команды Curl с их описанием.
OPTION | DESCRIPTION |
---|---|
-A, –user-agent <string> | Установка пользовательской строки агента пользователя |
-b, –cookie <name=data> | Отправка файлов cookie из строки/файла |
-c, –cookie-jar <file name> | Запись файлов cookie в файл после выполнения операции |
-d, –data <data> | Данные HTTP POST |
-e, –referer <URL> | URL адрес реферера |
-F, –form <name=content> | HTTP многокомпонентные данные POST |
-H, –header <header> | Дополнительный заголовок для включения в запрос |
-i, –include | Включить заголовки протоколов в вывод |
-I, –head | Получение только заголовков |
-k, –insecure | Разрешить небезопасные соединения с сервером при использовании SSL |
-L, –location | Следить за переадресацией |
-o, –output <file name> | Запись вывода в файл вместо stdout |
-O, –remote-name | Запись вывода в файл с тем же именем, что и удаленный файл |
-s, –silent | Бесшумный режим, ничего не выводит |
-T, –upload-file <file name> | HTTP PUT данные из файла |
-u, –user <user:password> | Установите имя пользователя и пароль для аутентификации сервера |
-v, –verbose | Режим Verbose, выводит больше информации |
-w, –write-out <format> | Пользовательский формат вывода |
-x, –proxy <[protocol://]host[:port]> | Использовать указанный прокси-сервер |
–cert <certificate[:password]> | Файл сертификата клиента и пароль |
–compressed | Включить сжатие |
–connect-timeout <seconds> | Максимальное время ожидания соединения |
–digest | Используйте аутентификацию HTTP Digest |
–insecure | Разрешить небезопасные соединения с сервером при использовании SSL |
–ipv4 | Использовать только IPv4 |
–ipv6 | Использовать только IPv6 |
–keepalive-time <seconds> | Время сколько поддерживать связи |
–max-filesize <bytes> | Максимальный размер загружаемых файлов |
–max-redirs <num> | Максимальное количество перенаправлений для следования |
–netrc | Используйте учетные данные из файла .netrc |
–no-keepalive | Отключить функцию keepalive |
–ntlm | Используйте аутентификацию NTLM |
–retry <num> | Количество повторных попыток при неудаче |
–ssl | Использовать SSL |
–tlsv1.0, –tlsv1.1, –tlsv1.2 | Использовать указанную версию TLS |
–user-agent <string> | Установка пользовательской строки агента пользователя |
Важно отметить, что эти опции можно использовать по отдельности или в комбинации, чтобы настроить команду Curl под конкретные задачи. Освоив эти опции, пользователи смогут выполнять широкий спектр HTTP/HTTPS запросов и автоматизировать различные вебзадачи с помощью командной строки.
Очень познавательно спасибо.
Какой умный и добрый человек! Спасибо, все понятно описано.
Интересно, а главное работает.