【博客403】curl命令的用法

内容:记录测试后端服务常用的一个命令:curl

curl:

curl(全称CommandLine URL 或 CommandLine Uniform Resource Locator)
curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)

用法:

curl命令行工具的基本语句为:curl [options] [URL...]

参数用法:

-A:设置用户代理发送给服务器
-b:传入cookie字符串或文件读取位置
-c:操作结束后把cookie写入到这个文件中
-C:断点续转
-D:把header信息写入到该文件中
-e:来源网址
-f:连接失败时不显示http错误
-o:把这个网页保存下来,相当于使用wget命令了。
-O:把输出写到该文件中,保留远程文件的文件名
-r:检索来自HTTP/1.1或FTP服务器字节范围
-s:静音模式。不输出任何东西
-T:上传文件
-u:设置服务器的用户和密码
-x:在给定的端口上使用HTTP代理
-#:进度条显示当前的传送状态
-i:参数可以显示http response的头信息
-v:参数可以显示一次http通信的整个过程,包括端口连接和http request头信息
-X:curl默认的HTTP动词是GET,使用-X参数可以支持其它动词
--header:有时需要在http request之中,自行增加一个头信息
--user:用于HTTP认证
--trace:显示更详细的通信过程
-H:如果想使用JSON形式post数据,可以使用-H指定头部类型

实例:

# 以GET方式访问网页,并得到html回复:
curl http://www.linux.com


# 可以使用curl的内置option:-O(大写)保存网页中的文件;注意这里后面的url要具体到某个
  文件,不然抓不下来
curl -O http://www.linux.com/hello.sh


# 测试网页返回值
curl -o /dev/null -s -w %{http_code} www.linux.com


# 模仿浏览器:有些网站需要使用特定的浏览器去访问他们,有些还需要使用某些特定的版本。
  curl内置option:-A可以让我们指定浏览器去访问网站

这样服务器端就会认为是使用IE8.0去访问的:
curl -A “Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)”
http://www.linux.com


# 伪造referer(盗链)
很多服务器会检查http访问的referer从而来控制访问。比如:你是先访问首页,然后再访问首页
中的邮箱页面,这里访问邮箱的referer地址就是访问首页成功后的页面地址,如果服务器发现对
邮箱页面访问的referer地址不是首页的地址,就断定那是个盗连了

curl中内置option:-e可以让我们设定referer
这样就会让服务器其以为你是从www.linux.com点击某个链接过来的:
curl -e “www.linux.com” http://mail.linux.com


#使用内置option:-o(小写),利用curl下载文件。

curl -o dodo1.jpg http:www.linux.com/dodo1.JPG


#使用内置option:-O(大写),这样就会以服务器上的名称保存文件到本地

curl -O http://www.linux.com/dodo1.JPG


# 循环下载:有时候下载图片可以能是前面的部分名称是一样的,就最后的尾椎名不一样
把dodo1,dodo2,dodo3,dodo4,dodo5全部保存下来:
curl -O http://www.linux.com/dodo[1-5].JPG



# 显示下载进度条
curl -# -O http://www.linux.com/dodo1.JPG


# 不会显示下载进度信息
curl -s -O http://www.linux.com/dodo1.JPG


# 上传文件:curl不仅仅可以下载文件,还可以上传文件。通过内置option:-T来实现
curl -T dodo1.JPG -u 用户名:密码 ftp://www.linux.com/img/

# 带请求参数的连接
curl -d 'user=xiaoruan&age=22' http://127.0.0.1/index.html

URL组合格式:

1、用{}表示多个URL:
如 http://site.{one,two,three}.com, 只要在{}中写上不同的部分,就可以表示3个URL了。
 
 
2、用[]表示多个URL:
如 ftp://ftp.numericals.com/file[1-100].txt
  还能表示不连续的排列:
如 http://www.numericals.com/file[1-100:10].txt(后面的数字表示等差排列的阶跃数)
 
3、结合起来使用
如 http://any.org/archive[1996-1999]/vol[1-4]/part{a,b,c}.html。
上一篇:Hook executed successfully but returned HTTP 403


下一篇:linux常用命令总结