Оба из них curl
и wget
используются для загрузки файлов и т. Д. Есть ли основания использовать один поверх другого?
Оба из них curl
и wget
используются для загрузки файлов и т. Д. Есть ли основания использовать один поверх другого?
Ответы:
После того как вы определили «правильное использование», используйте wget
.
Зачем? Поэтому:
Рекурсивный! Основная сильная сторона wget по сравнению с curl - это возможность рекурсивной загрузки или даже просто загрузка всего, на что есть ссылки, с удаленного ресурса, будь то страница HTML или список каталогов FTP.
Бесстыдное скопировано отсюда
curl
библиотека . curl
работает на libcurl
кроссплатформенной библиотеке со стабильным API, который может использовать каждый и все. Эта разница является существенной, поскольку она создает совершенно другое отношение к внутренним действиям. Также немного сложнее создать библиотеку, чем «простой» инструмент командной строки.
трубы . curl
работает больше как традиционная cat
команда Unix , она отправляет больше информации stdout
и читает больше stdin
в стиле «все - труба». wget
больше похоже cp
, используя тот же аналог.
Единственный выстрел . curl
в основном сделан, чтобы сделать единовременные передачи данных. Он передает только URL-адреса, указанные пользователем, и не содержит никакой рекурсивной логики загрузки или какого-либо синтаксического анализатора HTML.
Больше протоколов . curl
поддерживает FTP, FTPS, Gopher, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMB / CIFS, SMTP, RTMP и RTSP. Wget поддерживает только HTTP, HTTPS и FTP.
Более портативный . curl
строит и работает на большем количестве платформ, чем wget
. Например: OS / 400, TPF и другие более «экзотические» платформы, которые не являются прямыми клонами Unix.
Больше библиотек SSL и поддержка SSL . curl
может быть построен с одной из одиннадцати (11!) различных библиотек SSL / TLS, и он предлагает больше контроля и более широкую поддержку для деталей протокола. curl
поддерживает закрепление открытого ключа.
HTTP аутентификации . curl
поддерживает больше методов HTTP-аутентификации, особенно через HTTP-прокси: Basic, Digest, NTLM и Negotiate
НОСКИ . curl
поддерживает несколько версий протокола SOCKS для доступа к прокси
Двунаправленный . curl
предлагает возможности загрузки и отправки. wget
предлагает только простую поддержку HTTP POST.
HTTP multipart / form-data send , которая позволяет пользователям выполнять HTTP-загрузку и в целом эмулировать браузеры и в большей степени автоматизировать HTTP
curl
поддерживает gzip
и раздувает Content-Encoding и выполняет автоматическую распаковку
curl
предлагает и выполняет распаковку HTTP с кодировкой передачи, wget - нет
curl
поддерживает HTTP / 2 и поддерживает двойное соединение при помощи Happy Eyeballs
Гораздо больше активности разработчиков . Хотя это можно обсудить, я рассмотрю три показателя: активность в списке рассылки, частота принятия исходного кода и частота выпуска. Любой, кто следит за этими двумя проектами, может увидеть, что у curl-проекта намного более высокие темпы во всех этих областях, и так было уже более 10 лет. Сравните на openhub
wget
wget
только командная строка Там нет библиотеки.
Рекурсивно ! wget
Главная сильная сторона по сравнению с curl - это возможность рекурсивной загрузки или даже просто загрузка всего, на что ссылаются, с удаленного ресурса, будь то страница HTML или список каталогов FTP.
Пожилой . wget
восходит к 1995 году, а curl
прослеживается не раньше конца 1996 года.
GPL . wget
100% GPL v3. curl является лицензированным MIT.
GNU . wget
является частью проекта GNU, и все авторские права принадлежат FSF. Проект curl является полностью автономным и независимым, без родительского контроля со стороны организации, почти со всеми авторскими правами, принадлежащими Дэниелу.
wget
не требует никаких дополнительных опций для простой загрузки удаленного URL в локальный файл, в то время как curl
требуется -o
или -O
.
wget
поддерживает общедоступный список суффиксов для обработки доменов cookie, curl - нет.
wget
поддерживает только GnuTLS или OpenSSL для поддержки SSL / TLS
wget
поддерживает только базовую аутентификацию как единственный тип аутентификации через HTTP-прокси
wget
не поддерживает SOCKS
Его способность восстанавливаться после преждевременно прерванной передачи и продолжать загрузку не имеет аналога в curl.
wget
можно набрать, используя только левую руку на QWERTY-клавиатуре!
curl -C -
продолжается ли прерванная загрузка?
wget can be typed in using only the left hand on a qwerty keyboard!
, WTF ?? wget requires no extra options to simply download a remote URL to a local file, while curl requires -o or -O.
Есть много инструментов , которые можно скачать , как curl
, snarf
, wget
, pavuk
, fget
, fetch
, lftp
, aria2
, и HTTrack
т.д. Используйте его в соответствии с вашими требованиями и которые показывают вы хотите использовать вместе с загрузкой. Проверьте таблицу функций и используйте соответственно.
Завиток:
Wget:
Важные ресурсы для получения дополнительной информации:
Вот хорошее объяснение скручивания против Wget .
Таблица функций: Сравните функции cURL с другими инструментами загрузки
Подробная информация о поддерживаемых функциях скручивания: Особенности - что может делать скручивание
Подробности поддерживаемых функций wget : функции wget
У них много общего по функциональности, но curl
есть больше возможностей. Для wget
этого иногда может быть достаточно пролистать man wget
, но curl
мне нужно изучить эту веб-страницу в браузере. Я верю, что все, что может сделать ваш браузер, может сделать то curl
же самое.
Есть еще одно различие между wget и curl, которое я считаю существенным.
Wget - это отдельная утилита командной строки, предназначенная главным образом для быстрого и простого извлечения интернет-контента.
Curl, с другой стороны, в основном является терминальным интерфейсом для мощной библиотеки libcurl. Libcurl предоставляет очень мощный набор инструментов для работы с URL-адресами во всех их формах и вариантах и доступен практически для всех языков и платформ. Curl в основном дает вам возможность использовать эту библиотеку в сценариях оболочки.