What is curl command in windows

Getting started with cURL in Windows

The abbreviation cURL stands for “Client for URLs” or “Curl URL Request Library”. It is a command-line program with the corresponding library for data transfers between computers in a network. The cURL software was developed by the programmer Daniel Stenberg. His original goal was to provide users of a chat program with data on currency-exchange rates which was retrieved from various websites. Thanks to its MIT free-software license, cURL can be used freely and has found its way into many operating systems – including Windows 10 which has been using cURL since the 1803 update published in April 2018. “Everything curl” is a highly comprehensive guide and provides information about what this tool can do for developers. In the following sections, you will find some practical examples of what cURL for Windows can do. You can try some of them out for yourself right now.

What exactly is cURL for Windows?

As with other operating systems, cURL for Windows consists of the executable filecurl.exe and the library libcurl, which is an API written in the programming language C that implements cURL’s many functions. The commands are executed in the Windows command prompt window (i.e. the command line). There is a defined command syntax for this purpose:

In this example, is the address of the website you want to interact with. The [options …] are used to define the instructions for performing operations such as page requests, downloads, uploads, posts, handling forms, and more. Many of the options have two ways to write them:

  • one with a minus sign and letters
  • the other with two minus signs and a command word

For example, to use the GET method as an option, you can do so with either “-G” or “—get”.

Checking the availability and version of cURL

First check whether your Windows version has cURL and then which version. To do so, open the command prompt window by typing “cmd” in the Windows search function. Enter the following:

This will retrieve information about the available cURL version in your Windows 10 operating system.

Displaying the available cURL version in Windows 10. A: The cURL version included in Windows version 1903. B: The subsequent current version.

As cURL has been further developed, the number of usable protocols has steadily increased. You can see this in the following comparison in the table below of the two retrieved versions shown in the image above:

7.55.1 (August 2017) 7.70.0 (April 2020)
dict dict
file file
ftp ftp
ftps ftps
gopher
http http
https https
imap imap
imaps imaps
ldap
ldaps
mqtt
pop3 pop3
pop3s pop3s
rtsp
scp
sftp
smb
smbs
smtp smtp
smtps smtps
telnet telnet
tftp tftp

The options for data transfer in a variety of networks were thus also expanded.

Installing the current version of cURL

The cURL version installed with Windows is stored in the system as a path that can be reached by both the current user and the administrator. If you want to be able to use all of cURL’s available protocols, you will need to have the current version of cURL for Windows installed. The easiest way to do this is to download the current available version as a ZIP file from the developer’s website. There you will also find information about any changes made (i.e. a changelog). Unzip the file in the File Explorer into a directory (e.g. with the name “curl”). You can also place this directory on your system’s hard drive (e.g. C:\curl\). Copy all the files and directories from your unzipped downloaded cURL file to this new directory. The executable file curl.exe is located in the subdirectory\bin, which also contains the certificate file curl-ca-bundle.crt. This file is required to use the SFTP and HTTPS protocol, for instance.

Then, open the Windows command prompt window and enter the following:

Here, you can use all the available functions in cURL for Windows, which are used here in further demonstrations. To test this, all you have to do is access the version as described above. The method described here for updating cURL works for Windows 7, 8, and 10. You can also integrate the current version of cURL into your system. To do so, you need to create a system path and find (!) and deactivate the old version.

cURL in practice – with simple examples

To use cURL for Windows, enter text commands in the command prompt window. For a quick overview, enter the following command:

You can access detailed information in the manual with the following command:

You should save both outputs that appear in the command prompt window by copying and pasting them as a TXT file in a separate folder. This will allow you to easily access the commands by using the search function in the document and keep the command prompt window free.

Use a text editor in Windows. You can use it to note the commands for cURL, check them, and then copy them into the command prompt window. This will save you from having to repeatedly (and frustratingly) retype commands when typos creep in. You can also use it to save your own sets of commands for future actions, such as with your login information.

This can be done even faster with the following:

The CMD command “clip” preceded by a vertical bar immediately copies the current output in the command prompt window to the Windows Clipboard so that you only have to press [Ctrl] + [V] to paste the contents into an empty editor document and then save it.

Saving information about a website locally

If you need to save information about a website in a local file, this can be done with a simple cURL routine. The file containing the information should be named infos.html and saved on the local computer in the same directory as the cURL installation. In Windows, cURL uses the option “-o” (lowercase o, not zero) for this purpose.

This request generates a file larger than 700 kilobytes containing the specific status of the N-TV news channel’s website at the time of the request.

The example request for the website www.n-tv.de generates a file with all the content between two tags: … . This 720 kB example file has been significantly truncated here with ellipses (“. ”) showing where information has been omitted.

When you request this file from local data storage in a browser, the website will be displayed in its saved state.

It works the same way with a single file from a web server. The file ref.pdf shall be renamedreferences.pdf after being downloaded:

Displaying a website header

To display the content of a website header, which is enclosed in the HTML tags , you use an option before the requested website address (I = uppercase i):

Как пользоваться curl

Нам часто приходится загружать различные файлы из интернета, например, исполняемые файлы программ, файлы скриптов, архивы с исходниками. Но не всегда это нужно делать через браузер. Во многих ситуациях гораздо проще выполнить все действия через терминал. Поскольку таким образом вы можете автоматизировать процесс. С другой стороны, веб-мастерам время от времени приходится тестировать доступность веб-сайтов, проверять отправляемые и получаемые заголовки и многое другое.

Для решения таких задач и задач подобного круга можно воспользоваться утилитой curl. Она позволяет решить намного более широкий круг задач, среди которых даже имитация действий пользователя на сайте. В этой статье мы рассмотрим как пользоваться curl, что это такое и зачем нужна эта программа.

Что такое curl?

На самом деле, curl — это больше чем просто утилита командной строки для Linux или Windows. Это набор библиотек, в которых реализуются базовые возможности работы с URL страницами и передачи файлов. Библиотека поддерживает работу с протоколами: FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, LDAP, а также POP3, IMAP и SMTP. Она отлично подходит для имитации действий пользователя на страницах и других операций с URL адресами.

Поддержка библиотеки curl была добавлена в множество различных языков программирования и платформ. Утилита curl — это независимая обвертка для этой библиотеки. Именно на этой утилите мы и остановимся в этой статье.

Команда curl

Перед тем как перейти к описанию того как может использоваться команда curl linux, давайте разберем саму утилиту и ее основные опции, которые нам понадобятся. Синтаксис утилиты очень прост:

$ curl опции ссылка

Теперь рассмотрим основные опции:

  • -# — отображать простой прогресс-бар во время загрузки;
  • -0 — использовать протокол http 1.0;
  • -1 — использовать протокол шифрования tlsv1;
  • -2 — использовать sslv2;
  • -3 — использовать sslv3;
  • -4 — использовать ipv4;
  • -6 — использовать ipv6;
  • -A — указать свой USER_AGENT;
  • -b — сохранить Cookie в файл;
  • -c — отправить Cookie на сервер из файла;
  • -C — продолжить загрузку файла с места разрыва или указанного смещения;
  • -m — максимальное время ожидания ответа от сервера;
  • -d — отправить данные методом POST;
  • -D — сохранить заголовки, возвращенные сервером в файл;
  • -e — задать поле Referer-uri, указывает с какого сайта пришел пользователь;
  • -E — использовать внешний сертификат SSL;
  • -f — не выводить сообщения об ошибках;
  • -F — отправить данные в виде формы;
  • -G — если эта опция включена, то все данные, указанные в опции -d будут передаваться методом GET;
  • -H — передать заголовки на сервер;
  • -I — получать только HTTP заголовок, а все содержимое страницы игнорировать;
  • -j — прочитать и отправить cookie из файла;
  • -J — удалить заголовок из запроса;
  • -L — принимать и обрабатывать перенаправления;
  • -s — максимальное количество перенаправлений с помощью Location;
  • -o — выводить контент страницы в файл;
  • -O — сохранять контент в файл с именем страницы или файла на сервере;
  • -p — использовать прокси;
  • —proto — указать протокол, который нужно использовать;
  • -R — сохранять время последнего изменения удаленного файла;
  • -s — выводить минимум информации об ошибках;
  • -S — выводить сообщения об ошибках;
  • -T — загрузить файл на сервер;
  • -v — максимально подробный вывод;
  • -y — минимальная скорость загрузки;
  • -Y — максимальная скорость загрузки;
  • -z — скачать файл, только если он был модифицирован позже указанного времени;
  • -V — вывести версию.

Это далеко не все параметры curl linux, но здесь перечислено все основное, что вам придется использовать.

Как пользоваться curl?

Мы рассмотрели все, что касается теории работы с утилитой curl, теперь пришло время перейти к практике, и рассмотреть примеры команды curl.

Загрузка файлов

Самая частая задача — это загрузка файлов linux. Скачать файл очень просто. Для этого достаточно передать утилите в параметрах имя файла или html страницы:

Но тут вас ждет одна неожиданность, все содержимое файла будет отправлено на стандартный вывод. Чтобы записать его в какой-либо файл используйте:

curl -o readme.txt https://raw.githubusercontent.com/curl/curl/master/README.md

А если вы хотите, чтобы полученный файл назывался так же, как и файл на сервере, используйте опцию -O:

curl -O https://raw.githubusercontent.com/curl/curl/master/README.md

Если загрузка была неожиданно прервана, вы можете ее возобновить:

curl -# -C — -O https://cdn.kernel.org/pub/linux/kernel/v4.x/testing/linux-4.11-rc7.tar.xz

Если нужно, одной командой можно скачать несколько файлов:

curl -O https://raw.githubusercontent.com/curl/curl/master/README.md -O https://raw.githubusercontent.com/curl/curl/master/README

Еще одна вещь, которая может быть полезной администратору — это загрузка файла, только если он был изменен:

curl -z 21-Dec-17 https://raw.githubusercontent.com/curl/curl/master/README.md -O https://raw.githubusercontent.com/curl/curl/master/README

Данная команда скачает файл, только если он был изменен после 21 декабря 2017.

Ограничение скорости

Вы можете ограничить скорость загрузки до необходимого предела, чтобы не перегружать сеть с помощью опции -Y:

curl —limit-rate 50K -O https://cdn.kernel.org/pub/linux/kernel/v4.x/testing/linux-4.11-rc7.tar.xz

Здесь нужно указать количество килобайт в секунду, которые можно загружать. Также вы можете разорвать соединение если скорости недостаточно, для этого используйте опцию -Y:

curl -Y 100 -O https://raw.githubusercontent.com/curl/curl/master/README.md

Передача файлов

Загрузка файлов, это достаточно просто, но утилита позволяет выполнять и другие действия, например, отправку файлов на ftp сервер. Для этого существует опция -T:

curl -T login.txt ftp://speedtest.tele2.net/upload/

Или проверим отправку файла по HTTP, для этого существует специальный сервис:

В ответе утилита сообщит где вы можете найти загруженный файл.

Отправка данных POST

Вы можете отправлять не только файлы, но и любые данные методом POST. Напомню, что этот метод используется для отправки данных различных форм. Для отправки такого запроса используйте опцию -d. Для тестирования будем пользоваться тем же сервисом:

curl -d «field1=val&fileld2=val1″http://posttestserver.com/post.php

Если вас не устраивает такой вариант отправки, вы можете сделать вид, что отправили форму. Для этого есть опция -F:

curl -F «password=@pass;type=text/plain» http://posttestserver.com/post.php

Здесь мы передаем формой поле password, с типом обычный текст, точно так же вы можете передать несколько параметров.

Передача и прием куки

Куки или Cookie используются сайтами для хранения некой информации на стороне пользователя. Это может быть необходимо, например, для аутентификации. Вы можете принимать и передавать Cookie с помощью curl. Чтобы сохранить полученные Cookie в файл используйте опцию -c:

curl -c cookie.txt http://posttestserver.com/post.php

Затем можно отправить cookie curl обратно:

curl -b cookie.txt http://posttestserver.com/post.php

Передача и анализ заголовков

Не всегда нам обязательно нужно содержимое страницы. Иногда могут быть интересны только заголовки. Чтобы вывести только их есть опция -I:

curl -I https://losst.ru

А опция -H позволяет отправить нужный заголовок или несколько на сервер, например, можно передать заголовок If-Modified-Since чтобы страница возвращалась только если она была изменена:

curl -I —header ‘If-Modified-Since: Mon, 26 Dec 2016 18:13:12 GMT’ https://losst.ru

Аутентификация curl

Если на сервере требуется аутентификация одного из распространенных типов, например, HTTP Basic или FTP, то curl очень просто может справиться с такой задачей. Для указания данных аутентификации просто укажите их через двоеточие в опции -u:

curl -u ftpuser:ftppass -T — ftp://ftp.testserver.com/myfile_1.txt

Точно так же будет выполняться аутентификация на серверах HTTP.

Использование прокси

Если вам нужно использовать прокси сервер для загрузки файлов, то это тоже очень просто. Достаточно задать адрес прокси сервера в опции -x:

curl -x proxysever.test.com:3128 http://google.co.in

Выводы

В этой статье мы рассмотрели как пользоваться curl, зачем нужна эта утилита и основные ее возможности. Несмотря на свою схожесть с wget, они очень сильно отличаются. Команда curl linux предназначена больше для анализа и имитации различных действий на сервере, тогда как wget больше подходит для загрузки файлов и краулинга сайтов.

Читайте также:  Windows занимает слишком много места
Оцените статью