Linux curl命令最全详解

您所在的位置:网站首页 cule怎么读 Linux curl命令最全详解

Linux curl命令最全详解

2023-12-15 09:55| 来源: 网络整理| 查看: 265

目录

一、最常用的curl命令

1、发送GET请求

2、发送POST请求

3、发送json格式请求:

二、curl命令语法与curl命令参数详解

1、curl命令语法

2、curl命令参数详解

 三、Linux curl命令退出码

四、常见用法

1、下载(option:-o或者option:-O)

2、上传文件(option:-T)

3、伪造来源页面|伪造referer|盗链 (option:-e)

4、伪造代理设备(模仿浏览器)

5、设置http请求

6、http响应头

7、发送表单数据

8、cookie

9、测试一个网址

10、保存访问的网页(>>)

11、请求方式

12、调试

13、显示抓取错误

curl是一个非常实用的、用来与服务器之间传输数据的工具;支持的协议包括 (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP),curl设计为无用户交互下完成工作;curl提供了一大堆非常有用的功能,包括代理访问、用户认证、ftp上传下载、HTTP POST、SSL连接、cookie支持、断点续传...。

一、最常用的curl命令 1、发送GET请求 curl URL curl URL?a=1&b=nihao 2、发送POST请求 curl -X POST -d 'a=1&b=nihao' URL 3、发送json格式请求: curl -H "Content-Type: application/json" -X POST -d '{"abc":123,"bcd":"nihao"}' URL curl -H "Content-Type: application/json" -X POST -d @test.json URL

其中,-H代表header头,-X是指定什么类型请求(POST/GET/HEAD/DELETE/PUT/PATCH),-d代表传输什么数据。这几个是最常用的。 查看所有curl命令: man curl或者curl -h 请求头:H,A,e 响应头:I,i,D cookie:b,c,j 传输:F(POST),G(GET),T(PUT),X 输出:o,O,w 断点续传:r 调试:v,--trace,--trace-ascii,--trace-time    

二、curl命令语法与curl命令参数详解 1、curl命令语法 curl [options] [URL...] 2、curl命令参数详解

由于linux curl功能十分强大,所以命令参数十分多,下表只是爱E族(aiezu.com)帅选出来的部分参数,更多参数请运行“man curl”命令查看。

参数组参数描述urlurl需要抓取的一到多个URLs; 多个下面通配符的方式:   1、http://{www,ftp,mail}.aiezu.com;   2、http://aiezu.com/images/[001-999].jpg;   3、http://aiezu.com/images/[1-999].html;   4、ftp://aiezu.com/file[a-z].txt请 求 头-H "name: value" --header "name: value"(HTTP)添加一个http header(http请求头);-H "name:" --header "name:"(HTTP)移除一个http header(http请求头);-A "string" --user-agent "string"【参考】(HTTP)设置Http请求头“User-Agent”,服务器通过“User-Agent”可以判断客户端使用的浏览器名称和操作系统类型,伪造此参数能导致服务器做出错误判断。 也可以使用“-H”, “--header option”设置此选项;-e  --referer 【参考】(HTTP)设置访问时的来源页面,告诉http服务从哪个页面进入到此页面; -e "aiezu.com"相当于“-H "Referer: www.qq.com"”;响 应 头-I --head(HTTP)只输出HTTP-header,不获取内容(HTTP/FTP/FILE)。 用于HTTP服务时,获取页面的http头;   (如:curl -I http://aiezu.com) 用于FTP/FILE时,将会获取文件大小、最后修改时间;   (如:curl -I file://test.txt)-i --include(HTTP)输出HTTP头和返回内容;-D  --dump-header (HTTP)转储http响应头到指定文件;cookie-b name=data --cookie name=data【参考】(HTTP)发送cookie数据到HTTP服务器,数据格式为:"NAME1=VALUE1; NAME2=VALUE2"; 如果行中没有“=”,将把参数值当作cookie文件名; 这个cookie数据可以是由服务器的http响应头“Set-Cookie:”行发送过来的;-c filename --cookie-jar file name【参考】(HTTP)完成操作后将服务器返回的cookies保存到指定的文件; 指定参数值为“-”将定向到标准输出“如控制台”;-j --junk-session-cookies(HTTP)告诉curl放弃所有的"session cookies"; 相当于重启浏览器;代理-x host:port -x [protocol://[user:pwd@]host[:port] --proxy [protocol://[user:pwd@]host[:port]【参考】使用HTTP代理访问;如果未指定端口,默认使用8080端口; protocol默认为http_proxy,其他可能的值包括: http_proxy、HTTPS_PROXY、socks4、socks4a、socks5; 如: --proxy 8.8.8.8:8080; -x "http_proxy://aiezu:[email protected]:80"-p --proxytunnel将“-x”参数的代理,作为通道的方式去代理非HTTP协议,如ftp;--socks4 --socks4a --socks5 【参考】使用SOCKS4代理; 使用SOCKS4A代理; 使用SOCKS5代理; 此参数会覆盖“-x”参数;--proxy-anyauth --proxy-basic --proxy-diges --proxy-negotiate --proxy-ntlmhttp代理认证方式,参考: --anyauth --basic --diges --negotiate --ntlm-U  --proxy-user 设置代理的用户名和密码;数据 传输-G --get【参考】如果使用了此参数,“-d/”、“--data”、“--data-binary”参数设置的数据,讲附加在url上,以GET的方式请求; -d @file -d "string" --data "string" --data-ascii "string" --data-binary "string" --data-urlencode "string"【参考】(HTTP)使用HTTP POST方式发送“key/value对”数据,相当于浏览器表单属性(method="POST",enctype="application/x-www-form-urlencoded")   -d,--data:HTTP方式POST数据;   --data-ascii:HTTP方式POST ascii数据;   --data-binary:HTTP方式POST二进制数据;   --data-urlencode:HTTP方式POST数据(进行urlencode); 如果数据以“@”开头,后紧跟一个文件,将post文件内的内容;-F name=@file -F name=


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3