ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Суббота, 14 декабря, 2024

В чем разница между wget и curl?

В чем разница между wget и curl?

Нам часто нужно загружать файлы с удаленных серверов на наш локальный компьютер. На графическом рабочем столе мы можем использовать браузер с графическим интерфейсом и нажать кнопку загрузки. Однако на терминале нам нужно использовать инструменты, разработанные для терминала. При загрузке файлов с терминала часто появляются четыре инструмента: curl , axel , wget и aria2. Хотя axel и aria2 могут быть не очень хорошо известны, большинство пользователей терминалов знают curl и wget.

В этой статье мы рассмотрим curl и wget, с чего начать, и, что наиболее важно, различия между ними.

 

Что такое cURL?

cURL — это бесплатная утилита командной строки с открытым исходным кодом, которая позволяет пользователям передавать данные с одного удаленного компьютера на другой с минимальным вмешательством пользователя или без него. CURL широко используется в таких устройствах, как маршрутизаторы, принтеры, телефоны, планшеты, медиаплееры и т. д.

Он поддерживает загрузку и выгрузку с использованием таких протоколов, как HTTP/HTTPS, FTP, SFTP, SCP, IMAP, LDAP/LDAPS, SMB/SMBS, TELNET, POP3, GOPHER и многие, многие другие.

cURL также предоставляет прокси, возобновление передачи, аутентификацию пользователей, сертификаты SSL и многое другое.

 

Что такое wget?

GNU Wget, обычно называемый wget, — это бесплатная утилита командной строки для передачи файлов с использованием HTTP/HTTPS, FTP и FTPS. Он предоставляет такие функции, как рекурсивные загрузки, управление пропускной способностью, возобновление прерванных передач, фоновые загрузки, рекурсивные зеркальные файлы и каталоги и многое другое.

 

Как установить cURL и Wget?

cURL и wget — популярные инструменты, легко доступные в основных дистрибутивах Linux; если у вас не установлен какой-либо инструмент, используйте следующие команды для установки:

 

Debian/Ubuntu:

# установить cURL

sudo apt-get install curl

# установить wget

sudo apt-get install wget

 

Arch/Manjaro:

# установить cURL

sudo pacman -S curl

# установить wget

sudo pacman -S wget

 

REHL/CentOS/Fedora:

# установить cURL

sudo yum install curl 
sudo dnf install curl

# установить wget

sudo yum install wget 
sudo dnf install wget

 

Как использовать cURL и Wget (примеры использования)?

Чтобы убедиться, что вы понимаете сходства и различия между cURL и wget, полезно взглянуть на несколько примеров:

 

Протоколы HTTP/HTTPS:

И cURL, и wget поддерживают протоколы HTTP и HTTPS. Следовательно, если мы загрузим такой веб-сайт, как andreyex.ru:

curl https://andreyex.ru -o andreyex.html

curl https://andreyex.ru -o andreyex.html

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

100 256k 0 256k 0 0 166k 0 --:--:-- 0:00:01 --:--:-- 166k

По умолчанию cURL будет печатать содержимое веб-ресурса в терминале. Мы используем флаг -o, чтобы перенаправить вывод в файл.

К wget применимо следующее:

https://andreyex.ru
--2021-07-23 16:05:09--  https://andreyex.ru/
Resolving andreyex.ru (andreyex.ru)... 213.159.210.167, 172.17.0.1
Connecting to andreyex.ru (andreyex.ru)|213.159.210.167|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: 'index.html'

index.html [ <=> ] 135.22K --.-KB/s in 0.001s

2021-07-23 16:05:09 (161 MB/s) - 'index.html' saved [138463]

 

Wget, с другой стороны, сохраняет запрошенный ресурс в файл.

Приятно отметить, что оба инструмента загружают ресурс. Подробности ls двух файлов показывают оба размера файлов.

$ Ls -l index.html andreyex.html

-rw-RW-r-- 1 andreyex andreyex 262396 июля 20 12:23 index.html

-rw-RW-r-- 1 andreyex andreyex 262396 июля 23 12:43 andreyex.html

Протокол FTP:

И cURL, и wget поддерживают загрузку по протоколам FTP. Однако cURL поддерживает загрузку на ftp.

Используйте команду ниже для загрузки файлов с FTP-сервера с помощью wget:

wget --user=debian --password=’debian’ ftp://192.168.0.112/backup.zst

wget --user=debian --password='debian' ftp://192.168.0.112/backup.zst

--2021-06-20 05:29:06-- ftp://192.168.0.112/backup.zst

=> ‘backup.zst’

Connecting to 192.168.0.112:21... connected.

Logging in as debian ... Logged in!

==> SYST ... done. ==> PWD ... done.

==> TYPE I ... done. ==> CWD not needed.

==> SIZE backup.zst ... done.

==> PASV ... done. ==> RETR backup.zst ... done.

backup.zst

[ <=> ] 0 --.-KB/s in 0s

2021-06-20 05:29:06 (0.00 B/s) - ‘backup.zst’ saved [0]

Using curl, add the -u flag as:

curl -u debian:debian ‘ftp://192.168.0.112/backup.zst’ -o backup.zst

curl -u debian:debian 'ftp://192.168.0.112/backup.zst' -o backup.zst

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0

To upload a file to ftp with curl, we use the -T option as:

curl -u debian:debian -T “backup1.zst” ftp://192.168.0.112/ftp/

Убедитесь, что каталог существует и у пользователя есть права на запись в него.

 

Сходства между wget и cURL

А теперь глазурь на торте:

 

Различия между wget и cURL

Вот некоторые различия между curl и wget:

 

Вывод

В этом руководстве основное внимание уделяется сходству и различию между cURL. Хотя может показаться, что cURL — лучший выбор, есть случаи, когда wget — лучший выбор.

Мой вам совет — выберите то, что вам подходит.

Exit mobile version