Чим відрізняється curl від wget?


258

Мені цікаво знати різницю між curlі wget. Обидва використовуються для отримання файлів і документів, але яка ключова різниця між ними.

Чому існують дві різні програми?


5
Основна відмінність полягає в тому, що wget використовується для завантаження речей, а curl використовується для перевірки зв'язку за допомогою певного протоколу.
Пітікос


2
Від curlавтора: daniel.haxx.se/docs/curl-vs-wget.html
Vanni

Відповіді:


265

Основні відмінності:

  • wgetОсновна сильна сторона порівняно з curlйого здатністю рекурсивно завантажувати.
  • wgetє лише командним рядком Немає ні ліб, ні нічого, але curlйого функції живлять libcurl.
  • curlпідтримує FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMTP, RTMPі RTSP. wgetпідтримує HTTP, HTTPSі FTP.
  • curlбудує та працює на більше платформах, ніж wget.
  • wgetвипускається під ліцензією безкоштовного програмного забезпечення copyleft (GNU GPL). curlвипускається під ліцензією вільного програмного забезпечення (похідне MIT).
  • curlпропонує можливість завантаження та надсилання. wgetпропонує лише звичайну підтримку HTTP POST.

Більш детальну інформацію ви можете побачити за наступним посиланням:

завивка проти Wget


1
Дякую, це саме те, про що я цікавився кілька годин. Я використовував wget, щоб робити рекурсивний павук на сайті, схоже, затримався на сторінці, що на ньому містить одинадцять базових мільйонів посилань. Реальність полягає в тому, що він працює на 100% процесора на одному ядрі. Сподівався, що є щось краще, що робить цю новомодну багатоядерну річ, про яку я чув.
Брайан Топінг

1
Одне з речей wget, що залишається поза цією відповіддю, - це можливість дзеркального відображення (або "павуки"). curlдуже хороший у тому, що робить, але тільки він не призначений для використання у дзеркальному відображенні веб-сайту.
jsbillings

А як wput - псевдонім, що підтримує ftp.
mckenzm

1
Ці фрази не мають сенсу: "і всі авторські права присвоєні FSF", "є повністю автономним та незалежним, без організації батьківства взагалі". Очевидно, що автор cURL є власником авторських прав на нього. Очевидно, що автор wget є власником авторських прав на нього. Але обидва є безкоштовними, як у програмі свободи. Ви можете замість цього сказати, що wget знаходиться під ліцензією copyleft, а CURL - за ліцензією.
Валеріо Бозз

1
@ValerioBozz: насправді ні. І curl, і wget - це спільні проекти. З допомогою завитка кожна людина володіє авторськими правами на код, який вони вносять. З Wget, як і у більшості інших програм GNU, різні автори передають свої авторські права на FSF. Тобто вони більше не володіють цим кодом. Це дозволить FSF суворо застосовувати копілефт і, за необхідності, повторно надавати код.
darnir

57

Кілька слів:

  • wget є інструментом для завантаження файлів із серверів
  • curl - це інструмент, за допомогою якого ви можете обмінюватися запитами / відповідями з сервером

wget

Wget дозволяє лише завантажувати файли з HTTP/ HTTPSабо FTPсервера. Ви даєте йому посилання, і він автоматично завантажує файл, на який вказує посилання. Він будує запит автоматично.

завиток

Curl на відміну від wget дозволяє будувати запит за своїм бажанням . Це дає багато свободи користувачеві і робить дивовижний інструмент налагодження. Додайте до цього іншу ключову відмінність між ними: безліч підтримуваних протоколів. Curl опори FTP, FTPS, Gopher, HTTP, HTTPS, SCP, SFTP, TFTP, Telnet, DICT, LDAP, LDAPS, IMAP, POP3, SMTP, RTSPі URI. Поєднайте ці два ключові моменти, і у вас є дивовижний інструмент для тестування протоколів, конфігурації тестового сервера тощо.

Як багато хто каже, ви можете завантажити файл із завитком. Однак це корисно лише в тому випадку, якщо ви хочете завантажити файл з сервера, який використовує протокол, який wget не підтримує.


2
Насправді wgetтакож слідує переспрямування, тоді зберігається відповідь на відміну curl. Обидва можуть домогтися протилежної поведінці за замовчуванням wget -qO - http://google.co.uk/ абоcurl http://google.co.uk/ > index.html
Метт

1
@mtm curl http://google.co.uk/ > index.htmlне використовує вбудовану функціональність. У будь-якому разі, головне відмінність - мета, для якої був виготовлений кожен інструмент. Не можна заперечувати, що інструменти розвиваються і багато разів відхиляються від своєї початкової траєкторії.
Пітікос

1
@mtm curl http://google.co.uk -o index.htmlвикористовує внутрішні елементи curl замість перенаправлення виводу оболонки на >.
Petrus Repo

19

Власне, головна відмінність полягає в тому, що вона curlвключає бібліотеку ( libcurl), і ця бібліотека широко використовується іншими програмами. wgetє автономним.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.