Curl windows как пользоваться
Нам часто приходится загружать различные файлы из интернета, например, исполняемые файлы программ, файлы скриптов, архивы с исходниками. Но не всегда это нужно делать через браузер. Во многих ситуациях гораздо проще выполнить все действия через терминал. Поскольку таким образом вы можете автоматизировать процесс. С другой стороны, веб-мастерам время от времени приходится тестировать доступность веб-сайтов, проверять отправляемые и получаемые заголовки и многое другое.
Для решения таких задач и задач подобного круга можно воспользоваться утилитой curl. Она позволяет решить намного более широкий круг задач, среди которых даже имитация действий пользователя на сайте. В этой статье мы рассмотрим как пользоваться curl, что это такое и зачем нужна эта программа.
Что такое curl?
Поддержка библиотеки curl была добавлена в множество различных языков программирования и платформ. Утилита curl - это независимая обвертка для этой библиотеки. Именно на этой утилите мы и остановимся в этой статье.
Команда curl
Перед тем как перейти к описанию того как может использоваться команда curl linux, давайте разберем саму утилиту и ее основные опции, которые нам понадобятся. Синтаксис утилиты очень прост:
$ curl опции ссылка
Теперь рассмотрим основные опции:
Это далеко не все параметры curl linux, но здесь перечислено все основное, что вам придется использовать.
Как пользоваться curl?
Мы рассмотрели все, что касается теории работы с утилитой curl, теперь пришло время перейти к практике, и рассмотреть примеры команды curl.
Загрузка файлов
Но тут вас ждет одна неожиданность, все содержимое файла будет отправлено на стандартный вывод. Чтобы записать его в какой-либо файл используйте:
А если вы хотите, чтобы полученный файл назывался так же, как и файл на сервере, используйте опцию -O:
Если загрузка была неожиданно прервана, вы можете ее возобновить:
Если нужно, одной командой можно скачать несколько файлов:
Еще одна вещь, которая может быть полезной администратору - это загрузка файла, только если он был изменен:
Данная команда скачает файл, только если он был изменен после 21 декабря 2017.
Ограничение скорости
Вы можете ограничить скорость загрузки до необходимого предела, чтобы не перегружать сеть с помощью опции -Y:
Здесь нужно указать количество килобайт в секунду, которые можно загружать. Также вы можете разорвать соединение если скорости недостаточно, для этого используйте опцию -Y:
Передача файлов
Загрузка файлов, это достаточно просто, но утилита позволяет выполнять и другие действия, например, отправку файлов на ftp сервер. Для этого существует опция -T:
В ответе утилита сообщит где вы можете найти загруженный файл.
Отправка данных POST
Вы можете отправлять не только файлы, но и любые данные методом POST. Напомню, что этот метод используется для отправки данных различных форм. Для отправки такого запроса используйте опцию -d. Для тестирования будем пользоваться тем же сервисом:
Если вас не устраивает такой вариант отправки, вы можете сделать вид, что отправили форму. Для этого есть опция -F:
Здесь мы передаем формой поле password, с типом обычный текст, точно так же вы можете передать несколько параметров.
Передача и прием куки
Куки или Cookie используются сайтами для хранения некой информации на стороне пользователя. Это может быть необходимо, например, для аутентификации. Вы можете принимать и передавать Cookie с помощью curl. Чтобы сохранить полученные Cookie в файл используйте опцию -c:
Передача и анализ заголовков
Не всегда нам обязательно нужно содержимое страницы. Иногда могут быть интересны только заголовки. Чтобы вывести только их есть опция -I:
Аутентификация curl
Использование прокси
Если вам нужно использовать прокси сервер для загрузки файлов, то это тоже очень просто. Достаточно задать адрес прокси сервера в опции -x:
Выводы
В этой статье мы рассмотрели как пользоваться curl, зачем нужна эта утилита и основные ее возможности. Несмотря на свою схожесть с wget, они очень сильно отличаются. Команда curl linux предназначена больше для анализа и имитации различных действий на сервере, тогда как wget больше подходит для загрузки файлов и краулинга сайтов.
Запускаем командную строку, переходим в директорию curl/bin и пытаемся скачать главную страницу Google:
Следовать за редиректами
Сохранить вывод в файл
Чтобы сохранить вывод в файл, надо использовать опции -o или -O :
- -o ( o нижнего регистра) — результат будет сохранён в файле, заданном в командной строке;
- -O ( O верхнего регистра) — имя файла будет взято из URL и будет использовано для сохранения полученных данных.
Сохраняем страницу Google в файл google.html :
Сохраняем документ gettext.html в файл gettext.html :
Загрузить файл, только если он изменён
Команда ниже загрузит файл archive.zip , если он изменялся до 20 августа 2018 года:
Получение и отправка cookie
Cookie используются сайтами для хранения некой информации на стороне пользователя. Сервер сохраняет cookie на стороне клиента (т.е. в браузере), отправляя заголовки:
А браузер, в свою очередь, отправляет полученные cookie обратно на сервер при каждом запросе. Разумеется, тоже в заголовках:
Передать cookie на сервер, как будто они были ранее получены от сервера:
Чтобы сохранить полученные сookie в файл:
Файл cookie.txt имеет вид:
Получение и отправка заголовков
Если содержимое страницы не нужно, а интересны только заголовки (будет отправлен HEAD запрос):
Посмотреть, какие заголовки отправляет CURL при запросе, можно с помощью опции -v , которая выводит более подробную информацию:
- Строка, начинающаяся с > означает заголовок, отправленный серверу
- Строка, начинающаяся с < означает заголовок, полученный от сервера
- Строка, начинающаяся с * означает дополнительные данные от CURL
Отправка данных методом POST
Параметр --data аналогичен --data-ascii , для отправки двоичных данных необходимо использовать параметр --data-binary . Для URL-кодирования полей формы нужно использовать --data-urlencode .
Если значение опции --data начинается с @ , то после него должно быть имя файла с данными (или дефис — тогда будут использованы данные из стандартного ввода). Пример получения данных из файла для отправки POST-запроса:
Содержимое файла data.txt :
Массив $_POST , который будет содержать данные этого запроса:
Пример URL-кодирования данных из файла перед отправкой POST-запроса:
Содержимое файла username.txt :
Массив $_POST , который будет содержать данные этого запроса:
Загрузка файлов методом POST
Со временем возникла необходимость через формы отсылать еще и файлы. Тогда консорциум W3C взялся за доработку формата POST запроса, в результате чего появился документ RFC 1867. Форма, которая позволяет пользователю загрузить файл, используя алгоритм multipart/form-data , выглядит примерно так:
Скрипт upload.php , который принимает данные формы:
Работа по протоколу FTP
Если заданный FTP путь является директорией, то по умолчанию будет выведен список файлов в ней:
Если вы хотите использовать cUrl в Windows 10, у вас есть два варианта. Проверьте свою сборку Windows 10, и если у вас есть что-то старше 17063, действуйте следующим образом.
Вам нужно будет скачать cUrl с официального сайта. Версия Windows находится внизу страницы загрузки. Вы хотите загрузить общую версию с застежкой-молнией. Извлеките заархивированный файл и внутри папки bin, вы найдете файл curl.exe. Откройте командную строку в этой папке и запустите любую команду, которую вы хотите.
Так как потребуется много времени, чтобы записывать CD в папку bin каждый раз, когда вы хотите использовать cUrl, рекомендуется добавить путь к вашим переменным среды пути. Это позволит вам запускать cUrl из любого места.
cUrl В Windows 7, 8 / 8.1
В Windows 7 и 8 / 8.1 будет применяться тот же процесс, что и для Windows 10 старше старше 17063 года. Вам необходимо загрузить cUrl с официального сайта, связанного в предыдущем разделе, и запустить его. Чтобы упростить его использование, вы можете добавить его в переменные среды пути.
Использование cUrl
Если вы добавили переменные cUrl EXE в переменные окружения, вы можете запустить команду cUrl из любой точки командной строки. Если вы не добавили его в переменные среды пути, вам нужно сначала открыть командную строку с правами администратора (Windows 10, сборка 1706 и более поздние), а затем запустить команду.
Для старых версий Windows 10 и для Windows 7 и 8 / 8.1 вам нужно сначала cd в папку с cUrl EXE, а затем выполнить команду.
Microsoft предоставляет пользователям множество причин для обновления до Windows 10. В дополнение к добавлению cUrl по умолчанию он также включает в себя Tar сейчас. Tar позволяет создавать архивы и извлекать их, не требуя дополнительных инструментов. Если это недостаточно для обновления, есть и тот факт, что Office 2019 будет работать только на ПК с Windows 10.
Как использовать cUrl В Windows 10 Reviewed by Admin on июня 08, 2018 Rating: 5Что такое Curl? Curl — это сокращение от “Client URL”. Утилита доступна в большинстве систем на основе Unix и предназначена для проверки подключения к URL-адресам. Кроме того команда Curl — отличный инструмент передачи данных. Давайте же узнаем, как ею пользоваться.
Команда Curl поддерживает следующий список протоколов:
Это наиболее важные поддерживаемые протоколы, но есть и другие. Curl работает на libcurl, которая является бесплатной библиотекой для передачи URL на стороне клиента.
Прокачайте ваш проект, воспользовавшись скидками на VPS-хостинг в Hostinger! Большой выбор планов, как для учебных, так и для крупных коммерческих проектов.
Проверка Версии Curl
Прежде чем мы начнём работать с Curl, нам нужно войти в наш VPS. Если вам нужна помощь, ознакомьтесь с этим руководством по SSH.
Сначала давайте проверим её доступною версию, с помощью следующей команды:
В выводе вы должны увидеть версию и список поддерживаемых протоколов. Теперь мы можем взглянуть на некоторые примеры команд Curl.
Основной Синтаксис Команды Curl
Итак, давайте узнаем, как пользоваться утилитой. Основной синтаксис Curl выглядит следующим образом:
Команда Curl для Работы с Файлами
Команды Curl могут загружать файлы из удалённой локации. Есть два способа это сделать:
- -O сохранит файл в текущем рабочем каталоге с тем же именем, что и у удалённого;
- -o позволяет указать другое имя файла или местоположение.
Приведённая выше команда сохранит файл как testfile.tar.gz .
А эта команда сохранит его как newtestfile.tar.gz .
Если по какой-либо причине загрузка будет прервана, вы можете возобновить её с помощью следующей команды:
Curl также позволяет загрузить несколько файлов одновременно. Пример:
Если вы хотите загрузить несколько файлов с нескольких URL, перечислите их все в файле. Команды Curl могут быть объединены с xargs для загрузки различных URL-адресов.
Например, если у нас есть файл allUrls.txt , который содержит список всех URL-адресов для загрузки, то приведённый ниже пример выполнит загрузку всех файлов с этих URL.
В приведённом выше примере вы можете выбросить -U username:password , если прокси-сервер не требует метода аутентификации.
Пример ниже демонстрирует, как получить информацию о заголовке с веб-сайта.
Используя curl, вы можете сделать запрос GET и POST . Запрос GET будет выглядеть следующим образом:
А вот пример запроса POST :
Здесь text=Hello — это параметр запроса POST. Такое поведение похоже на HTML-формы.
Команда содержит запрос POST, за которым следует запрос GET.
Вы можете изменить дефолтную информацию об агенте пользователя, используя следующую команду:
Теперь вывод будет выглядеть так:
Команда Curl и Cookies
Вот пример такой команды:
Curl и FTP
Утилита поддерживает FTP! Вы можете использовать её для загрузки файлов с удалённого сервера.
В приведённой выше команде ftp://sampleftpserver — это FTP-сервер, который принимает соединения. Вы можете не указывать имя пользователя и пароль для анонимных FTP-соединений. Введите команду и посмотрите, как заполняется индикатор выполнения.
Вы также можете загружать файлы с помощью этой команды:
Опять же таки, мы можем пропустить имя пользователя и пароль для анонимных FTP-соединений.
Ограничение Скорости Скачивания
Скачивая или загружая данные с помощью Curl, вы не можете знать, насколько большим будет вывод. Вы можете ограничить скорость скачивания, чтобы убедиться, что Curl не ограничивает пропускную способность канала.
Команда ниже ограничивает скорость скачивания до 100К:
Выводы
В этом руководстве мы рассказали вам, что такое curl, а также, как использовать эту мощную утилиту для скачивания и загрузки данных. Если вы работаете с командной строкой, то вам стоит научиться пользоваться этой командой. На самом деле Curl — это не просто утилита командной строки для Linux или Windows. Она имеет много вариантов применения и поддерживает разные протоколы.
И помните, если вам нужна помощь или вы хотите узнать более сложные команды Curl, вы всегда можете обратиться к руководству, которое должно быть во всех версиях Unix:
Мы надеемся, что это руководство станет для вас отправной точкой в использовании этой утилиты. И не забудьте рассказать нам о своём опыте работы с ней в комментариях!
Ольга уже около пяти лет работает менеджером в сфере IT. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.
Читайте также: