
Аббревиатура cURL означает «Клиент для URL-адресов» или «Библиотека запросов URL Curl». Это программа командной строки с соответствующей библиотекой для передачи данных между компьютерами в сети. Программа cURL была разработана программистом Даниэлем Стенбергом. Его первоначальной целью было предоставить пользователям программы чата данные о курсах валют, которые были получены с различных веб-сайтов. Благодаря лицензии MIT free-software, cURL может использоваться свободно и нашел свое применение во многих операционных системах — включая Windows 10, которая использует cURL с обновления 1803, опубликованного в апреле 2018 года. «Everything curl» — это очень полное руководство и содержит информацию о том, что этот инструмент может сделать для разработчиков. В следующих разделах вы найдете несколько практических примеров того, что может делать cURL для Windows. Некоторые из них вы можете опробовать прямо сейчас.
- Что именно представляет собой cURL для Windows?
- Проверка наличия и версии cURL
- Установка текущей версии cURL
- cURL на практике — с простыми примерами
- Сохранение информации о сайте локально
- Отображение заголовка сайта
- Отображение более подробной информации
- Загрузка данных по протоколу SFTP
- Загрузка по протоколу SFTP и cURL
- cURLing прогноза погоды
- cURL и PHP — хорошая пара
- PowerShell против командной строки
Что именно представляет собой cURL для Windows?
Как и в других операционных системах, cURL для Windows состоит из исполняемого файлаcurl.exe и библиотеки libcurl, которая представляет собой API, написанный на языке программирования C и реализующий множество функций cURL. Команды выполняются в окне командной строки Windows (т.е. в командной строке). Для этого существует определенный синтаксис команд:
C:Usersuser>curl [options …] <url>
В данном примере <url> — это адрес сайта, с которым вы хотите взаимодействовать. Параметры [options …] используются для определения инструкций по выполнению таких операций, как запросы страниц, загрузки, выгрузки, посты, работа с формами и многое другое. Многие опции имеют два варианта написания:
- один со знаком минус и буквами
- другой — с двумя знаками минус и командным словом.
Например, чтобы использовать метод GET в качестве опции, вы можете сделать это с помощью «-G» или «—get».
Проверка наличия и версии cURL
Сначала проверьте, есть ли в вашей версии Windows cURL и какая именно версия. Для этого откройте окно командной строки, набрав «cmd» в функции поиска Windows. Введите следующее:
C:Usersuser>curl --version
В результате будет получена информация о доступной версии cURL в вашей операционной системе Windows 10.

По мере развития cURL количество используемых протоколов неуклонно росло. Это видно из сравнения в таблице ниже двух извлеченных версий, показанных на изображении выше:
7.55.1 (август 2017 года) | 7.70.0 (апрель 2020 года) |
---|---|
dict | dict |
файл | файл |
ftp | ftp |
ftps | ftps |
— | суслик |
http | http |
https | https |
imap | imap |
imaps | imaps |
— | ldap |
— | ldaps |
— | mqtt |
pop3 | pop3 |
поп3с | поп3с |
— | rtsp |
— | scp |
— | sftp |
— | smb |
— | smbs |
smtp | smtp |
smtps | smtps |
telnet | telnet |
tftp | tftp |
Таким образом, были расширены возможности передачи данных в различных сетях.
Установка текущей версии cURL
Версия cURL, установленная вместе с Windows, хранится в системе в виде пути, доступного как текущему пользователю, так и администратору. Если вы хотите иметь возможность использовать все доступные протоколы cURL, вам необходимо установить текущую версию cURL для Windows. Самый простой способ сделать это — загрузить текущую доступную версию в виде ZIP-файла с сайта разработчика. Там же вы найдете информацию обо всех внесенных изменениях (т.е. журнал изменений). Распакуйте файл в Проводнике файлов в каталог (например, с именем «curl»). Вы также можете поместить этот каталог на жесткий диск вашей системы (например, C:curl). Скопируйте все файлы и каталоги из разархивированного загруженного файла cURL в этот новый каталог. Исполняемый файл curl.exe находится в подкаталогеbin, который также содержит файл сертификата curl-ca-bundle.crt. Этот файл необходим, например, для использования протокола SFTP и HTTPS.
Затем откройте окно командной строки Windows и введите следующее:
# Jump up two directory levels
C:Usersuser>cd..
C:Users>cd..
# Jump to the specified directory
C:cd curlbin
C:curlbin>
Здесь вы можете использовать все доступные функции cURL для Windows, которые используются здесь в дальнейших демонстрациях. Чтобы проверить это, достаточно получить доступ к версии, описанной выше. Описанный здесь метод обновления cURL работает для Windows 7, 8 и 10. Вы также можете интегрировать текущую версию cURL в свою систему. Для этого нужно создать системный путь и найти (!) и деактивировать старую версию.
cURL на практике — с простыми примерами
Чтобы использовать cURL для Windows, введите текстовые команды в окне командной строки. Для быстрого обзора введите следующую команду:
C:curlbin>curl --help
Получить доступ к подробной информации в руководстве можно с помощью следующей команды:
C:curlbin>curl --manual
Вы должны сохранить оба вывода, появившиеся в окне командной строки, скопировав и вставив их в виде TXT-файла в отдельную папку. Это позволит вам легко получить доступ к командам с помощью функции поиска в документе и сохранить окно командной строки свободным.
Используйте текстовый редактор в Windows. С его помощью вы можете записать команды для cURL, проверить их, а затем скопировать в окно командной строки. Это избавит вас от необходимости многократно (и досадно) перепечатывать команды, когда в них вкрадываются опечатки. Вы также можете использовать его для сохранения собственных наборов команд для будущих действий, например, для работы с информацией для входа в систему.
Это можно сделать еще быстрее следующим образом:
C:curlbin >curl --help | clip
Команда CMD «clip», которой предшествует вертикальная полоса, немедленно копирует текущий вывод в окне командной строки в буфер обмена Windows, так что вам остается только нажать [Ctrl] + [V], чтобы вставить содержимое в пустой документ редактора, а затем сохранить его.
Сохранение информации о сайте локально
Если вам нужно сохранить информацию о сайте в локальном файле, это можно сделать с помощью простой процедуры cURL. Файл, содержащий информацию, должен быть назван infos.html и сохранен на локальном компьютере в той же директории, что и установка cURL. В Windows cURL использует для этой цели опцию «-o» (строчная o, не ноль).
curl -o infos.html https://www.n-tv.de/
Этот запрос генерирует файл размером более 700 килобайт, содержащий конкретное состояние сайта новостного канала N-TV на момент запроса.

Когда вы запросите этот файл из локального хранилища данных в браузере, веб-сайт будет отображен в сохраненном состоянии.
Аналогично происходит и с отдельным файлом с веб-сервера. Файл ref.pdf после загрузки будет переименован вreferences.pdf:
curl -o references.pdf https://mywebsite.tld/ref.pdf
or
curl --output references.pdf https://mywebsite.tld/ref.pdf
Отображение заголовка сайта
Для отображения содержимого заголовка сайта, заключенного в HTML-теги <head>…</head>, используется опция перед запрашиваемым адресом сайта (I = заглавная i):
curl --head https://google.com
# or
curl -I https://google.com

Отображение более подробной информации
Чтобы отобразить еще больше информации в выводе через cURL, вы можете добавить опцию «-v» или «—verbose». Эта опция предоставляет информацию об используемом IPv6-адресе, порте, любых сертификатах и многом другом.
curl -I https://google.com -v
# or
curl --head https://google.com --verbose
Загрузка данных по протоколу SFTP
В этой ситуации команда cURL немного сложнее, поскольку при использовании SFTP необходимо передать на сервер идентификаторы пользователей для входа и проверки. Итак, давайте перейдем к делу:
curl -k sftp://the-example-ftp-server:22 --user user:password -T examplefile.pdf
Вы можете отслеживать ход загрузки в окне командной строки Windows. Загруженный файл теперь должен находиться в корневом каталоге вашего FTP-сервера. Если вы неправильно ввели команду, cURL для Windows ответит следующим коротким сообщением: «curl: (67) Authentication failure». Если вы попытаетесь выполнить эту передачу с помощью более старой версии cURL 7.55.1, она выдаст следующее сообщение: «curl: (1) Протокол «sftp» не поддерживается или отключен в libcurl».
Загрузка по протоколу SFTP и cURL
С текущей версией cURL загрузку можно легко выполнить и без специального FTP-клиента, при условии, что загружаемый файл находится на FTP-сервере:
curl -k sftp://the-example-ftp-server:22 --user user:password -o examplefile.pdf
cURL превратился в мощный инструмент. Будьте осторожны при использовании cURL на своем собственном сервере. Используя резервное копирование и средства восстановления Windows, вы можете подстраховаться на случай, если что-то пойдет не так.
cURLing прогноза погоды
Запрос местного прогноза погоды таким образом демонстрирует, что можно представить информацию в более привлекательном (и полезном) виде с помощью символов ASCII:
curl http://wttr.in/LOCATION

Это можно сделать для любого места.
cURL и PHP — хорошая пара
Чтобы иметь возможность работать с cURL в практическом повседневном программировании, cURL также доступен в PHP. Проверьте свой веб-сервер с помощью следующего PHP-запроса:
<?php
phpinfo();
?>
Сохраните этот код в виде файла с именем phpinfo.php и переместите его в корневой каталог вашего веб-сервера. Когда вы запросите этот файл в браузере с помощью ´https://mywebsite.tld/phpinfo.php´, вам будет представлена вся информация о возможностях, доступных в вашей версии PHP, включая наличие cURL.

Чтобы запросить веб-сайт с дополнительной информацией, все, что вам нужно — это несколько строк PHP-кода. Здесь приведен пример запроса немецкого сайта Microsoft:
<?php
$site = curl_init(); //initialize the cURL handler
curl_setopt($site, CURLOPT_URL, "https://www.microsoft.com/de-de/"); //place the URL
curl_setopt($site,CURLOPT_RETURNTRANSFER,true); // set the optional parameters
curl_setopt($site,CURLOPT_HEADER, true); // display header; omit with „false“
$result=curl_exec($site); // execute the actual cURL
curl_close($site);
echo $result;
?>
Сохраните этот код в виде файла (например, под именем curlinfo.php) в корневом каталоге вашего веб-сервера.

Поскольку файл содержит только чистый PHP-код, заголовочная информация отображается собственным шрифтом браузера (т.е. неформатированной). Такая процедура является первым шагом к внедрению данных с других веб-сайтов в ваш собственный с помощью PHP и cURL.
PowerShell против командной строки
В Windows 10 появился еще один мощный инструмент разработки: он называется PowerShell. Его можно узнать по буквам «PS» перед путем Windows после открытия через значок Windows щелчком правой кнопки мыши. Windows PowerShell призван заменить командную строку (известную как «Консоль») и предоставляет еще более широкие возможности для управления веб-сайтами и серверами. Однако в PowerShell можно использовать только некоторые команды cURL. Остальные должны быть «переведены».
Переводчик» встроен и включается в PowerShell с помощью команды «Get-Alias» плюс команда cURL.
PS C:WINDOWSsystem32> Get-Alias curl
# generates the output
CommandType Name Version Source
----------- ---- ------- ------
Alias curl -> Invoke-WebRequest
Это подскажет вам, какую команду PowerShell можно использовать для cURL веб-сайта:
PS C:WINDOWSsystem32> Invoke-WebRequest https://google.com/