curlとwgetの違いは何ですか?


258

私は違いを知ることに熱心だcurlwget。どちらもファイルとドキュメントを取得するために使用されますが、それらの主な違いは何ですか。

なぜ2つの異なるプログラムがあるのですか?


5
主な違いは、wgetはダウンロードに使用され、curlは特定のプロトコルを使用して通信をテストするために使用されることです。
ピティコス14


回答:


265

主な違いは次のとおりです。

  • wgetと比較した場合のの大きな強みcurlは、再帰的にダウンロードできることです。
  • wgetコマンドラインのみです。libなどはありませんが、curlの機能はlibcurlによって強化されています。
  • curlサポートFTPFTPSHTTPHTTPSSCPSFTPTFTPTELNETDICTLDAPLDAPSFILEPOP3IMAPSMTPRTMPRTSPwgetサポートHTTPHTTPSおよびFTP
  • curlは、より多くのプラットフォームでビルドおよび実行されますwget
  • wgetフリーソフトウェアコピーレフトライセンス(GNU GPL)の下でリリースされています。curlフリーソフトウェア許可ライセンス(MIT派生)の下でリリースされます。
  • curlアップロードおよび送信機能を提供します。wget単純なHTTP POSTサポートのみを提供します。

次のリンクで詳細を確認できます。

curlとWget


1
おかげで、これはまさに私が数時間疑問に思っていたものです。私はwgetを使用してサイトで再帰的なスパイダーを実行しました。現実には、1つのコアで100%CPUで実行されています。私が聞いてきた新しいマルチコアなことをするより良いものがあることを望んでいました。
ブライアントッピング

1
wgetこの回答から除外されていることの1つは、HTTPミラーリング(または「スパイダー」)機能です。 curlそれは何をするのか非常に優れていますが、それだけではウェブサイトをミラーリングするために使用されることを意図していません。
jsbillings

ftpをサポートするエイリアスであるwputはどうですか。
-mckenzm

1
これらのフレーズには意味がありません。「そしてすべての著作権はFSFに割り当てられています」、「完全にスタンドアロンで独立しており、組織はまったく子育てしていません」。cURLの作成者が著作権の所有者であることは明らかです。wgetの作成者が著作権の所有者であることは明らかです。しかし、どちらも自由ソフトウェアのように無料です。代わりに、wgetはコピーレフトライセンスの下にあり、cURLは許容ライセンスの下にあると言うことができます。
ヴァレリオボズ

1
@ValerioBozz:実際にはありません。curlとwgetはどちらもコミュニティプロジェクトです。curlを使用すると、各人が貢献するコードの著作権を所有します。Wgetでは、他のほとんどのGNUプログラムと同様に、さまざまな著者がFSFに著作権を譲渡します。つまり、彼らはもはやそのコードを所有していません。これは、FSFがコピーレフトを厳密に実施し、必要に応じてコードを再ライセンスできるようにするためです。
darnir

57

いくつかの言葉で:

  • wget サーバーからファイルをダウンロードするツールです
  • curl サーバーとリクエスト/レスポンスを交換できるツールです

wget

Wgetを使用すると、HTTP/ HTTPSまたはFTPサーバーからファイルをダウンロードできます。リンクを指定すると、リンクが指すファイルが自動的にダウンロードされます。要求を自動的に構築します。

カール

wgetとは対照的にCurlでは、希望どおりにリクエスト作成できます。これにより、ユーザーに多くの自由が与えられ、すばらしいデバッグツールが作成されます。それに加えて、2つの間のもう1つの重要な違い、つまりサポートされているプロトコルが多すぎることです。カールサポートFTPFTPSGopherHTTPHTTPSSCPSFTPTFTPTelnetDICTLDAPLDAPSIMAPPOP3SMTPRTSPURI。これらの2つの重要なポイントを組み合わせると、プロトコルをテストしたり、サーバー構成をテストしたりするすばらしいツールが手に入ります。

多くの人が言うように、curlでファイルをダウンロードできます。ただし、wgetがサポートしていないプロトコルを使用するサーバーからファイルをダウンロードする場合にのみ役立ちます。


2
実際にwgetはリダイレクトに従い、その後とは異なり、応答を保存しcurlます。どちらも、デフォルトの動作とは反対のことを実現できます。wget -qO - http://google.co.uk/ または、14curl http://google.co.uk/ > index.html
マット

1
ただし、@ mtm curl http://google.co.uk/ > index.htmlは組み込みの機能を使用していません。とにかく主な違いは、各ツールの目的です。ツールが進化し、多くの場合、最初の軌道から逸脱することを否定しません。
ピチコス14

1
@mtm curl http://google.co.uk -o index.htmlは、シェル出力リダイレクトの代わりにcurlの内部を使用し>ます。
ペトリュスレポ

19

実際、大きな違いはcurl、ライブラリ(libcurl)が含まれていることであり、そのライブラリは他のアプリケーションで広く使用されています。 wgetスタンドアロンです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.