Оба из них 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
wgetwgetтолько командная строка Там нет библиотеки.
Рекурсивно ! wgetГлавная сильная сторона по сравнению с curl - это возможность рекурсивной загрузки или даже просто загрузка всего, на что ссылаются, с удаленного ресурса, будь то страница HTML или список каталогов FTP.
Пожилой . wgetвосходит к 1995 году, а curlпрослеживается не раньше конца 1996 года.
GPL . wget100% 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 в основном дает вам возможность использовать эту библиотеку в сценариях оболочки.