І те, 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 auth . curl
підтримує більше методів аутентифікації HTTP, особливо через проксі-сервери HTTP: Basic, Digest, NTLM та Negotiate
СОКОВИ . curl
підтримує кілька версій протоколу SOCKS для доступу проксі
Двонаправлені . curl
пропонує можливість завантаження та надсилання. wget
пропонує лише звичайну підтримку HTTP POST.
Відправка даних із багаточастинними формами / форматами HTTP , що дозволяє користувачам робити "завантаження" HTTP та взагалі імітувати браузери та ширше робити автоматизацію HTTP.
curl
підтримує gzip
і надуває Content-Encoding і робить автоматичну декомпресію
curl
пропонує і виконує декомпресію HTTP-кодованого HTTP, wget не робить
curl
підтримує HTTP / 2, і він з'єднує подвійний стек за допомогою Happy Eyeballs
Набагато більше активності розробників . Хоча це може бути обговорено, я тут розглядаю три показники: активність списку розсилки, частота фіксації вихідного коду та частота випуску. Кожен, хто слідує за цими двома проектами, може побачити, що проект з завитками має набагато більший темп у всіх цих областях, і це вже протягом 10+ років. Порівняйте на openhub
wget
wget
є лише командним рядком Бібліотеки немає.
Рекурсивний ! wget
Основною сильною стороною порівняно з curl є його здатність завантажувати рекурсивно або навіть просто завантажувати все, на що йдеться, з віддаленого ресурсу, будь то HTML-сторінка або список FTP-каталогів.
Старіші . wget
має сліди до 1995 року, хоча curl
їх можна відстежити не раніше кінця 1996 року.
GPL . wget
становить 100% GPL v3. curl має ліцензію MIT.
GNU . wget
є частиною проекту GNU, і всі авторські права призначені FSF. Проект curl є повністю автономним та незалежним, взагалі не має батьківських організацій, майже з усіма авторськими правами, що належать Daniel.
wget
не вимагає додаткових варіантів просто завантажити віддалену URL-адресу в локальний файл, хоча curl
вимагає -o
або -O
.
wget
підтримує загальнодоступний список суфіксів для обробки доменів cookie, згортання не робить.
wget
підтримує тільки GnuTLS або OpenSSL для підтримки SSL / TLS
wget
підтримує лише Basic auth як єдиний тип auth через HTTP-проксі
wget
не підтримує SOCKS
Його здатність відновлюватися після передчасно зірваної передачі та продовжувати завантаження не має аналогічного результату.
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:
Важливі ресурси для отримання додаткової інформації:
Ось хороше пояснення curl vs Wget .
Таблиця особливостей: Порівняйте функції CURL з іншими інструментами для завантаження
Деталі підтримуваних функцій завивки: Особливості - що може зробити завиток
Докладно про підтримувані функції wget : функції wget
Вони мають багато функціональних можливостей, але curl
має більше можливостей. Тому wget
що іноді може бути достатньо для того, щоб розгорнути man wget
, але curl
мені потрібно вивчити цю веб-сторінку в браузері. Я вважаю, що може зробити ваш браузер curl
.
Є ще одна відмінність між wget і curl, які я вважаю істотними.
Wget - це автономна утиліта командного рядка, призначена головним чином для швидкого та простого завантаження Інтернет-вмісту.
Curl з іншого боку - це в основному передній кінець для потужної бібліотеки libcurl. Libcurl надає дуже потужний набір інструментів для роботи з URL-адресами у всіх їх формах та смаках і доступний майже для всіх мов та платформ. Curl в основному дає вам можливість використовувати цю бібліотеку в скриптах оболонки.