І те, 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
wgetwgetє лише командним рядком Бібліотеки немає.
Рекурсивний ! 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 в основному дає вам можливість використовувати цю бібліотеку в скриптах оболонки.