在我使用它们的有限时间里, 一直wget==文件下载器==curl
, 但是见许多REST文档中都拿curl做例子,便man curl, 发现其简介如下:
curl is a tool to transfer data from or to a server, using one of the supported
protocols (HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TFTP, DICT, TELNET, LDAP or FILE).
The command is designed to work without user interaction.
curl offers a busload of useful tricks like proxy support, user authentication,
FTP upload, HTTP post, SSL connections, cookies, file transfer resume and more.
As you will see below, the number of features will make your head spin!
curl is powered by libcurl for all transfer-related features. See libcurl(3) for
details.
英文浅显易懂, 我想: 功能这么强大, 估计又难免记忆一大堆参数(痛苦)
大家是如何用的?
Linux纯命令行-Server
man curl
man wget
wget
一句話:內建的檔案下載工具
優點:
多數發行版內建
支援簡單的遞迴扒站
適合下載,預設寫檔案
缺點:
一般只用做下載,組裝post請求、發複雜header等不常用
下載功能較原始,不支援並發、p2p、磁力連結等
curl
一句話:內建的請求傳送工具+請求發送庫
優點:
多數發行版內建
某種程度上是表達一個http請求的預設(例如chrome開發工具可以直接複製為curl,例如很多api介面文件直接提供curl指令)
預設輸出stdout,方便pipe其他指令(常見的一句話安裝
curl xxx | bash
)同時libcurl是穩定常用的類別庫,方便整合到其他專案
缺點:
用做下載要額外參數
拼接複雜請求相對麻煩
httpie
一句話:現代的http請求傳送工具
優點:
拼接json請求非常方便,適合調「現代」的restful介面
支援用檔案記錄session(cookie、固定請求頭等),適合調介面
參數清晰簡單,上手快
回傳結果有高亮
缺點:
要自己裝
要自己裝
要自己裝
(還有eliangcs/http-prompt這個項目,簡直黑魔法)
aria2c
一句話:現代的下載工具
優點:
支援更多包含磁力連結的下載方式、並發下載、多個來源下載等等
server模式,可以裝在路由器裡,從而實現遠端下載
缺點:
要自己裝
要自己裝
要自己裝
個人行為:
wget一般用於下載檔案
curl一般用於模擬請求,測試api
wget: 下載利器
下載速率慢的資源,瀏覽器常常會沒下完就當完成了。建議加
-T5
批次下 HTML 文件:
wget -T 5 -t 10 -Q 500m -nH -r -E -l inf -k -p -np URL
批次下 URL:
wget -i URL列表文件
curl: 除錯利器
簡單好用,隨處可得
瀏覽器的開發者工具支援複製為 curl 請求