linux的curl命令是一个使用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,是一个综合性的传输工具,但按照传统,习惯上称curl为下载工具。作为一个强大的工具,curl支持包括HTTP、HTTPS、ftp等多种协议,还支持POST、cookies、身份验证、从指定偏移量下载部分文件、用户代理字符串、速度限制、文件大小、进度条等功能,ETC。。命令语法>curl(option)(parameter)命令选项-A/--user-agent设置用户代理发送到服务器-b/--cookiecookie字符串或文件读取position-c/--cookie-jar运行后把cookie写入这个文件-C/--continue-at在断点处继续-D/--dump-header把header将信息写入此文件-e/--refererSourceURL-f/--fail连接失败时不显示HTTP错误-o/--output将输出写入此文件-O/--remote-namePutOutputis写入此文件,保留远程文件的文件名-r/--range从HTTP/1.1或FTP服务器检索字节范围-s/--silent静默模式。什么都不输出-T/--upload-file上传文件-u/--usersetserveruserandpassword-w/--write-out[format]whatoutputisdoneAfter-x/--proxyUseHTTPproxyonthegivenport-#/--progress-bar进度条显示当前传送状态文件下载curl命令可用于执行下载,发送各种AkindHTTPrequest,指定HTTPheader等操作curl是将下载的文件输出到stdout,将进度信息输出到stderr,使用--silent选项不显示进度信息。>curlhttps://rumenz.com--silent下载文件到指定的文件lowercase-o,uppercase-Osavefilewithitsoriginalfilename>curlhttps://rumenz.com/1.html-o2.htmluppercase-O使用原始文件名保存文件>curlhttps://rumenz.com/1.html-O--progress显示进度条>curlhttps://rumenz.com/2.html-o2.html--progressresume>curl-O-u'rumenz':'test'ftp://rumenz.com/jdk.tar.gz然后你的连接突然断开了,你可以使用下面的命令继续下载>curl-C--O-u'rumenz':'test'ftp://rumenz.com/jdk.tar.gz注意断点续传的参数是-C,如果要自动续传就用-C-,否则,需要手动指定断点的字节位置。伪造请求源>curl-ehttps://json.imhttps://rumenz.com参考页是HTTP头中的一个字符串,用来表示用户是从哪个页面到达当前页面的,如果用户点击网页A中的一个链接,那么用户会跳转到网页B,网页B的header中的referencepagestring中包含了网页A的URL。您还可以使用--referer选项指定参考页面字符串。设置-H参数可以直接加上headerReferer达到同样的效果>curl-H'Referer:https://json.im'https://rumenz.com请求头>curl-H"Host:rumenz.com"-H"accept-language:zh-cn"URLcurlbandwidthcontrol>curl--limit-rate200khttps://rumenz.com/1.html使用curl认证使用curl选项-u完成HTTP或FTP认证,可以指定密码,也可以不指定密码在后续操作中输入密码:>curl-uuser:pwdhttps://rumenz.com>curl-uuserhttps://rumenz.com只打印响应头>curl-Ihttps://rumenz.comHTTP/1.1200OKServer:openresty/1.19.3.1Date:Wed,02Jun202113:37:41GMTContent-Type:text/html;charset=utf-8Connection:keep-alive使用curl模拟get请求直接显示网页内容>curlhttps://json.im/1.txt123456显示请求头和网页内容>curl-ihttps://json.im/1.txtHTTP/1.1200OKServer:openrestyDate:Wed,02Jun202114:02:30GMTContent-Type:text/plainContent-Length:8Last-Modified:Wed,02Jun202114:00:57GMTConnection:keep-aliveETag:"60b78f19-8"Accept-Ranges:bytes123456直接显示网页内容>curl-lhttps://json.im/1.txt显示get请求的全过程分析>curl-vhttps://json.im/1.txt·使用curl模拟post请求>curl-d"param1=value1¶m2=value2"https://json.im/login>curl-d'login=rumenz&password=123'-XPOSThttps://json.im/login>curl-d'login=rumenz'-d'password=123'-XPOSThttps://json.im/login--data-urlencode参数等于-d,发送数据体与POST请求不同的是,发送的数据会自动进行URL编码。>curl--data-urlencode'comment=helloworld'https://json.im/login上传文本文件>curl-d'@data.txt'https://json.im/上传json格式的数据>curl-l-H'Content-type:application/json'-XPOST-d'{"rumenz":"123"}'https://json.im/123.json向服务器发送Cookie>curlhttps://json.im--cookie"user=rumenz&pass=123456"Cookie写入文件>curl-ccookies.txthttps://json.im上传二进制文件-F参数用于上传二进制文件到服务器>curl-F"file=@123.png"https://json.im/uploadfile上面的命令会在HTTP请求中添加headerContent-Type:multipart/form-data,然后上传文件123..png作为文件字段。-F参数可以指定MIME类型。>curl-F'file=@123.png;type=image/png'https://json.im/uploadfile上面命令指定MIME类型为image/png,否则curl会设置MIME类型为application/octet-溪流。-F参数还可以指定文件名。>curl-F'file=@123.png;filename=rumenz.png'https://json.im/uploadfile在上面的命令中,原始文件名为123.png,但是服务器接收到的文件名为rumenz.png。request-follow-server-redirection-L参数将使HTTP请求遵循服务器重定向。默认情况下,curl不遵循重定向。>curl-L-d'rumenz=123'https://json.im/调试参数-v参数输出通讯全过程,方便调试。>curl-vhttps://json.im/1.txt*尝试150.109.147.28...*TCP_NODELAYset*连接到json.im(150.109.147.28)端口443(#0)*ALPN,提供h2*ALPN,提供http/1.1*密码选择:ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH*成功设置证书验证位置:*CAfile:/etc/ssl/cert.pemCApath:无*TLSv1.2(输出),TLS握手,客户端问候(1):*TLSv1.2(输入),TLS握手,服务器问候(2):*TLSv1.2(输入),TLS握手,证书(11):*TLSv1.2(IN),TLS握手,服务器密钥交换(12):*TLSv1.2(IN),TLS握手,服务器完成(14):*TLSv1.2(OUT),TLS握手,客户端密钥exchange(16):*TLSv1.2(OUT),TLS更改密码,Clienthello(1):*TLSv1.2(OUT),TLShandshake,Finished(20):*TLSv1.2(IN),TLSchangecipher,Clienthello(1):*TLSv1.2(IN),TLShandshake,Finished(20):*SSLconnectionusingTLSv1.2/ECDHE-RSA-AES128-GCM-SHA256*ALPN,serveracceptedtousehttp/1.1*服务器c证书:*主题:CN=json.im*开始日期:格林威治标准时间2021年4月27日14:50:23*到期日期:格林威治标准时间2021年7月26日14:50:23*主题替代名称:主机“json.im”与证书的“json.im"*发行人:C=US;O=让我们加密;CN=R3*SSL证书验证正常。>GET/1.txtHTTP/1.1>Host:json.im>User-Agent:curl/7.54.0>Accept:*/*>curl--trace-https://json.im原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门