wget vs curl

shell
Author

Ryo Nakagami

Published

2025-02-07

Modified

2025-07-18

Key Takeaways

wgetcurl はどちらもコマンドラインで使える HTTP クライアントですが,シチュエーションに応じて以下のような使い分けがあります

シチュエーション 推奨コマンド 理由
ファイルやウェブサイトのダウンロード wget wget はデフォルトでファイルを保存し,再帰的なダウンロード(-r)やレジューム(中断再開)も簡単に可能
API とのやりとり・JSON 送信 curl curl は HTTP ヘッダーのカスタマイズ,POST/PUT/DELETE メソッドの指定,JSONデータの送信など,APIとの通信に必要な機能が豊富
スクリプトで細かく制御したい curl curl はレスポンスヘッダーやステータスコードの取得,認証,プロキシの設定などが詳細に設定可能

wget コマンド

Definition 1 wgetコマンド

  • wget コマンドは,WEBサーバーからコンテンツを取得するためのコマンド
  • GUIを使わずにインターネットからファイルをダウンロードする際に使用される

options

オプション Syntax 例 動作
-r (recursive) wget -r http://example.com 再帰的ダウンロード
-A (accept) wget -r -A pdf,jpg http://example.com ダウンロード対象ファイルのホワイトリストを指定.指定された拡張子やキーワードを含むファイルのみをダウンロード対象.カンマ区切りで複数指定可能.
-R (reject) wget -r -R gif,zip http://example.com ダウンロード対象外ファイルのブラックリストを指定.指定された拡張子や文字列を含むファイルはダウンロードしない.こちらもカンマ区切りで複数指定可能.
-O wget -O wp.zip http://example.com ダウンロード対象ファイルの名前を指定
-P wget -P /home/jay/Downloads http://example.com ダウンロード先のディレクトリを指定
-c wget -c https://example.com/largefile.zip ダウンロードを途中から再開するオプション

wget -cの注意点

  • wget -cは不安定なネットワーク環境下での大容量ファイルのダウンロードのときに推奨
  • サーバー側がRange リクエスト(部分的なダウンロード)に対応していない場合は無効

curl コマンド

Definition 2 curlコマンド

  • さまざまなプロトコルに対応したデータを転送するためのコマンド

options

オプション Syntax 例 動作説明
-X curl -X POST https://example.com/api HTTPメソッドを明示的に指定(例: POST, PUT
-x curl -x http://proxy.example.com:8080 URL 指定したプロキシサーバーを経由してリクエストを送る
-d curl -d "key1=value1&key2=value2" URL HTTP POST リクエストのボディにデータを送信(デフォルトで Content-Type: application/x-www-form-urlencoded
-s curl -s https://example.com 進行状況やエラーメッセージなどの出力を抑制(“silent mode”)
-o curl -o myfile.html https://example.com 出力内容を指定したファイル名で保存
-O curl -O https://example.com/index.html URL から取得したファイル名そのままで保存
-L curl -L https://example.com リダイレクトを自動で追跡

Example 1 よく使う構文

構文例 説明
curl https://example.com 指定したURLからデータを取得
curl -o file.html https://example.com ファイルに保存してダウンロード
curl -I https://example.com HTTPヘッダーだけ取得
curl -X POST -d "a=1&b=2" https://api.example.com POSTリクエスト送信
curl -H "Authorization: Bearer TOKEN" https://api.example.com 認証付きリクエスト送信

比較まとめ表

項目 wget curl
主な用途 ファイルのダウンロード データの送受信(API など)
サポートプロトコル HTTP, HTTPS, FTP など HTTP, HTTPS, FTP, SFTP, SCP, LDAP など
再帰ダウンロード ◯(Webサイトごとダウンロード可能) ✕(スクリプトで再現は可能)
アップロード ✕(不可) 〇(可能)
レジューム(中断再開) ◯(-c オプション) ◯(-C - オプションなど)
デフォルト出力 ファイル保存 標準出力(ターミナルに出る)
POST リクエスト △(あまり使われない) ◯(API テストなどに最適)