linux - wget和curl各有何用处?(强大但是不知如何使用)
黄舟
黄舟 2017-04-17 15:41:47
0
3
528

描述问题

在我使用它们的有限时间里, 一直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.

英文浅显易懂, 我想: 功能这么强大, 估计又难免记忆一大堆参数(痛苦)

大家是如何用的?

上下文环境

  1. Linux纯命令行-Server

重现

相关代码

  1. man curl

  2. man wget

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

membalas semua(3)
刘奇

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: 下载利器

  1. 下载速率慢的资源,浏览器经常会没下完就当完成了。建议加 -T5

  2. 批量下 HTML 文档:wget -T 5 -t 10 -Q 500m -nH -r -E -l inf -k -p -np URL

  3. 批量下 URL:wget -i URL列表文件

curl: 调试利器

  1. 简单好用,随处可得

  2. 浏览器的开发者工具支持复制为 curl 请求

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan