Поиск по сайту:
Печально не то, что надвигается старость, а что уходит молодость (А. Дюма-сын).

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

23.07.2021
В чем разница между 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. Он предоставляет такие функции, как рекурсивные загрузки, управление пропускной способностью, возобновление прерванных передач, фоновые загрузки, рекурсивные зеркальные файлы и каталоги и многое другое.

Читать  Как запустить удаленно SSH команды в Linux и показать результат локально

 

Как установить 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.

Читать  Как удалить Snap-пакет в Ubuntu

Используйте команду ниже для загрузки файлов с 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/

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

Примечание
Хотя cURL поддерживает большое количество протоколов, он не обеспечивает рекурсивную загрузку. С другой стороны, Wget поддерживает рекурсивные загрузки с использованием параметра –recursive, поскольку протоколы HTTP/HTTPS и FTP/FTPS предлагают такую ​​функциональность.

 

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

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

  • Оба инструмента поддерживают стандартные протоколы, такие как HTTP, HTTPS, FTP, FTPS.
  • Оба инструмента загружают файлы из Интернета.
  • Оба инструмента поддерживают файлы cookie HTTP.
  • Оба инструмента поддерживают вывод в файл.
  • Как бесплатные, так и активно разрабатываемые инструменты.
  • Оба инструмента поддерживают переводы резюме.
  • Оба инструмента поддерживают HTTP POST.

 

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

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

  • Wget – это простая утилита для передачи, а curl предлагает гораздо больше.
  • Curl предоставляет библиотеку libcurl, которую можно расширить до приложений с графическим интерфейсом. С другой стороны, Wget – это простая утилита командной строки.
  • Wget поддерживает меньше протоколов по сравнению с cURL.
  • Рекурсивные загрузки не поддерживаются в curl.
  • Wget изначально доступен в системах Linux, а cURL легко доступен в системах Windows.
  • cURL поддерживает множественные параллельные передачи.
  • cURL выполняет декомпрессию HTTP с кодировкой передачи, а wget – нет.
  • cURL поддерживает двунаправленный HTTP, тогда как wget предлагает простой HTTP POST.
  • cURL поддерживает больше методов аутентификации HTTP по сравнению с wget.
  • Wget не поддерживает SOCKS.
  • Wget требует установленного гнулиба.
  • В отличие от curl, в wget по умолчанию включены такие функции, как файлы cookie, отметки времени и последующие перенаправления. cURL требует, чтобы каждый из них был указан явно.
Читать  Как удалить пользователя Linux

 

Вывод

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

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
При установке или обновлении пакетов в дистрибутивах Linux часто появляется…

Спасибо!

Теперь редакторы в курсе.