在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.

1.查看响应头信息:

-I :显示http response的头信息.

  1. [root@localhost]# curl -I www.sina.com
  2. HTTP/1.1 200 OK
  3. Date: Thu, 12 Oct 2017 08:30:05 GMT
  4. Content-Type: text/html
  5. Content-Length: 20996
  6. Last-Modified: Thu, 01 Jun 2017 19:46:25 GMT
  7. Connection: keep-alive
  8. ETag: "59306f11-5204"
  9. Expires: Thu, 12 Oct 2017 08:35:05 GMT
  10. Cache-Control: max-age=300
  11. Accept-Ranges: bytes
  12. Set-Cookie: TS016d18b4=01d72e94ac923b2a94e5e75bd7061d4b2816f58e5dc928b1acac133bd03f260317ed74cb3e; Path=/

2.指定代理(proxy)服务器以及其端口.在日常测试中可以绑定某个主机的ip和端口,来测试域名访问的正确性.

  1. [root@localhost]# curl -I -x 101.201.70.60:80 http://www.juzico.com
  2.  
  3. HTTP/1.1 200 OK
  4. Date: Thu, 12 Oct 2017 08:55:20 GMT
  5. Server: Apache/2.2.15 (CentOS)
  6. X-Powered-By: PHP/5.5.38
  7. Set-Cookie: sye=.html; expires=Sat, 11-Nov-2017 16:55:20 GMT; Max-Age=2620800
  8. Vary: Accept-Encoding
  9. Connection: close
  10. Content-Type: text/html; charset=UTF-8

3.测试网页返回值.

  1. [root@localhost]# curl -o /dev/null -s -w %{http_code} www.sina.com
  2. 200

4.模拟浏览器登录:

  1. [root@localhost]# curl -I -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)" http://www.sina.com
  2. HTTP/1.1 200 OK
  3. Date: Thu, 12 Oct 2017 09:45:00 GMT
  4. Content-Type: text/html
  5. Content-Length: 20996
  6. Last-Modified: Thu, 01 Jun 2017 19:46:25 GMT
  7. Connection: keep-alive
  8. ETag: "59306f11-5204"
  9. Expires: Thu, 12 Oct 2017 09:50:00 GMT
  10. Cache-Control: max-age=300
  11. Accept-Ranges: bytes
  12. Set-Cookie: TS016d18b4=01d72e94ac128c5e9a13de0faeb28c4d416904f2901fb3ff899e3c7f1c562a61888839a5b3; Path=/

5.通过-o/-O选项保存下载的文件到指定的文件中.

-o:将文件保存为命令行中指定的文件名的文件中
-O:使用URL中默认的文件名保存文件到本地

#小写o参数,将图片下载并重命名为1.jpg

  1. [root@localhost]# curl -o 1.jpg http://pic51.nipic.com/file/20141023/2531170_115622554000_2.jpg

#大写O参数,将图片保存到本地,使用自己本身的名字.

  1. [root@localhost]#curl -O http://pic51.nipic.com/file/20141023/2531170_115622554000_2.jpg

6.循环下载

  1. [root@localhost]# curl -O https://www.baidu.com/2531170[1-5].JPG

7.显示下载进度条

  1. curl -# -O http://pic51.nipic.com/file/20141023/2531170_115622554000_2.jpg

8.上传文件

curl不仅仅可以下载文件,还可以上传文件。通过内置参数-T来实现.

  1. curl -T 1.jpg -u 用户名:密码 ftp://www.sina.com/img/
  1. curl常用参数:
  2. : 不带任何参数时 curl 将返回指定url中的数据并打印在屏幕上
  3. -o:--output 将指定curl返回保存为out文件,内容从html/jpg到各种MIME类型文件.
  4. -O:--remote-name 按服务器上的名称保存下载的文件
  5. -s:去掉所有状态,静音模式。不输出任何东西
  6. -x/--proxy 在给定的端口上使用HTTP代理
  7. -I header信息
  8. -L 当页面有跳转的时候,输出跳转到的页面
  9. -0/--http1.0 使用HTTP 1.0 (-零)
  10. -w:按照后面的格式写出rt(单位是 秒)
  11. time_namelookupDNS 解析域名[www.taobao.com]的时间
  12. time_commectclientserver端建立TCP 连接的时间
  13. time_starttransfer:从client发出请求;到webserver 响应第一个字节的时间
  14. time_totalclient发出请求;到webserver发送会所有的相应数据的时间
  15. speed_download:下周速度 单位 byte/s

9.curl使用token从gitlab下载包:

  1. curl -I -m 10 -o /dev/null -s -w %{http_code} --header "PRIVATE-TOKEN: ${GITLAB_TOKEN}" ${DOWNLOAD_URL}
  2.  
  3. 下载包并改名:
  4. curl --header 'PRIVATE-TOKEN: 1BzfJssZB2SMshSywygX' 'http://gitlab.xxxxx.org/xxxxx/static_etongdai_com_common/repository/archive.zip?ref=master' -o /static//common.20180118143359.zip
  5.  
  6. 下载包:
  7. curl -O --header 'PRIVATE-TOKEN: 1BzfJssZB2SMshSywygX' 'http://gitlab.xxxxx.org/niguandong/static_xxxxx_com_common/repository/archive.zip?ref=master'

10.  -v 参数可以显示一次 http 通信的整个过程,包括端口连接和 http request 头信息

  1. curl -v http://www.baidu.com
  2.  
  3. #更详细的信息,并且保存起来.
  4. curl --trace-ascii output.txt http://www.baidu.com

链接文档:

http://www.ruanyifeng.com/blog/2019/09/curl-reference.html

http://blog.sina.com.cn/s/blog_af6bb6bc0102vi24.html

CURL 常用参数的更多相关文章

  1. CURL常用参数

    1. CURL简介 cURL是一个利用URL语法在命令行下工作的文件传输工具.它支持文件上传和下载,是综合传输工具.cURL就是客户端(client)的URL工具的意思. 2. 常用参数 -k:不校验 ...

  2. curl常用参数详解及示例

    curl简介 curl是一个开源的命令行工具,它基于网络协议,对指定URL进行网络传输,得到数据后不任何具体处理(如:html的渲染等),直接显示在"标准输出"(stdout)上. ...

  3. curl常用选项详解

    curl常用选项详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 又是下班的时间了,让我们一起来学习一下今天的Linux命令吧~我一半只把自己常用的参数列出来,其他的有但是我们几 ...

  4. Linux Curl常用命令使用【转】

    Curl是Linux下一个很强大的http命令行工具,其功能十分强大. 1)读取网页 $ curl linuxidc.com">http://www.linuxidc.com 2)保存 ...

  5. prometheus、node_exporter、cAdvisor常用参数

    本节将介绍一下我在使用过程中用到的promethues.node_exporter.cAdvisor的常用参数,做一个总结 一.prometheus prometheus分为容器安装和二进制文件安装, ...

  6. [转]CURL常用命令

    From:http://www.cnblogs.com/gbyukg/p/3326825.html p.p1 { margin: 0 0 2px; font: 14px ".PingFang ...

  7. Production环境中iptables常用参数配置

    production环境中iptables常用参数配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我相信在实际生产环境中有很多运维的兄弟跟我一样,很少用到iptables的这个 ...

  8. chattr的常用参数详解

    chattr的常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在实际生产环境中,有的运维工程师不得不和开发和测试打交道,在我们公司最常见的就是部署接口.每天每个人部署的 ...

  9. dmidecode常用参数

    dmidecode常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. dmidecode这个命令真是神器啊,他能快速的获取服务器的硬件信息,而且这个命令有很多的花式玩法,今 ...

随机推荐

  1. 使用canvas绘制扇形图

    <!doctype html><html lang="en"><head> <meta charset="UTF-8" ...

  2. docker 错误:Error response from daemon: cannot stop container: connect: connection refused": unknown

    docker 错误:Error response from daemon: cannot stop container: 795e4102b2de: Cannot kill container 795 ...

  3. 解决opencv和mfc同时使用导致memory leak

    参考资料:http://blog.csdn.net/lujin0312/article/details/42214467 最彻底的解决办法就是把用到opencv的部分做成dll,且这个dll中不出现跟 ...

  4. RelativeLayout 相对父级元素布局

    相对布局,用来设置相对父级视图的位置 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android ...

  5. csu1356 :判断一个环是否为奇数环

    http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1356 题意:给出一个起始点,一些边,有人从这个起始点开始随意走,问在某一个时候,它是否可以处于任意 ...

  6. mybatis批量更新的两种实现方式

    mapper.xml文件,后台传入一个对象集合,另外如果是mysql数据库,一点在配置文件上加上&allowMultiQueries=true,这样才可以执行多条sql,以下为mysql: & ...

  7. 针对C程序员的 C++

    C++是在C语言基础上添加面向对象扩展而成.C++在提供很多传统C语言没有的优点的同时也保持了与C语言的兼容性,这样人们就可以在一个程序中同时使用C和C++.在比赛当中,您必须使用一些基本的C++功能 ...

  8. The Swift.org Blog welcome欢迎页note

    The Swift.org Blog Welcomehtml, body {overflow-x: initial !important;}html { font-size: 14px; } body ...

  9. JAVA是否可以作脚本语言呢

    答:是可以的. 只是叫另一个名字-beanshell.印象里她好像还是第一款jvm语言.应该挺多年没更新了. 我之所以知道它,是当年折腾jEdit这款编辑器较多,它的内置脚本引擎使用的就是beansh ...

  10. Go Revel - Routing(路由)

    `Routing`路由控制着请求应该由哪些控制器接受. 它在项目的`conf/routes`文件中定义. 格式为: (METHOD) (URL Pattern) (Controller.Action) ...