找回密码
 加入怎通
查看: 304|回复: 5

http的请求和响应及curl的常用用法(备查)

[复制链接]
我来看看 发表于 2023-04-03 03:00:50 | 显示全部楼层 |阅读模式
0 G7 k! ?4 P% [7 r8 d4 a

http请求第一部分:动词 +路径+http协议/版本号,其中动词包括 GET POST PUT PATCH DELETE HEAD OPTIONS 等路径包括查询参数如?username=xxxxx但不包括锚点如#1111

5 O0 V2 l* k+ T0 x$ q: ?: U9 W

如果不写路径,则默认为/例:GET/ HTTP/1.1POST/ HTTP/1.1第二部分:一堆KEY和一堆value例:Host:http://cxcccc.com, i% Q) D, K) R( }: Y* r5 X Connection: keep-alive & c. X! {* V/ j7 s" D+ \ Upgrade-Insecure-Requests: 1 / [9 u% J3 \7 F0 O User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36 k, A4 l8 i- l y Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 / p; \3 T8 Z: f& i l2 @& T Referer: http://cxcccc.com: _( D6 g2 |8 i+ l9 R- B4 J Accept-Encoding: gzip, deflate, br 4 ^6 K& G9 Y. \. ~" [6 u Accept-Language: zh-CN,zh;q=0.9

7 M9 |/ S0 F5 L+ s; O0 _" N* h

注意:如果第四部分有数据,则第二部分需要标注他的格式,如:Content-Type:application/x-www-form-urlencoded第三部分:回车第四部分要上传的数据,可以为空(比如一些get的时候)

/ m! k- S. Z- B M; f" l1 o% L

例:当我 curl -X POST -d "1234567890" -s -v -H "Frank: xxx" -- "http://www.baidu.com"时,第四部分为1234567890查看http请求内容:

6 o! t, q/ a, b4 n: m

chrome中按F12呼出开发者工具,在network中在request里找个请求,找到request headers,点击viewsource,即可看到请求内容。

2 t. N) `. \' ]2 R

第四部分找到payload或者formdata即可。

0 Z# x7 |! N( I7 X: V& P3 F f7 ]

http响应第一部分:协议/版本号 状态码 解释如:http/1.1 200 ok其中状态码需要背下来:1xx 不常用2xx 成功了3xx 不接受你的请求4xx 客户端有问题(地址错了之类的)5xx 服务端有问题

! R- w# E* _( _6 j" X

解释可以自己定义,没啥用第二部分:一堆KEY和一堆VALUE(包括Content-Type:啥啥啥)第三部分:回车第四部分:返回的内容查看http响应内容:chrome中按F12呼出开发者工具,在network中在request里找个请求,找到response headers,点击viewsource,即可看到响应内容。

' d! D2 h8 j7 [7 h

第四部分找到Preview或者Response即可。

# N6 ~: u& q5 j0 R1 y% q( |

如何使用curl命令:最简单1:用curl查看html:curl http://www.baidu.com最简单2:使用linux的重定向功能保存:curl http://www.baidu.com >> baidu.html

0 M" J/ O( z9 y) i. V9 G( }

常用参数:-A/--user-agent 设置用户代理发送给服务器 # |1 s, v! |; ~- y& R -b/--cookie cookie字符串或文件读取位置; ?( T$ L- _4 M6 f Z -c/--cookie-jar 操作结束后把cookie写入到这个文件中: S6 ^9 Z! N+ }6 { -C/--continue-at 断点续转 " j7 N& j h- H& `% `, _% w -D/--dump-header 把header信息写入到该文件中! o R/ W+ t; f" {& \: p -e/--referer 来源网址 " E2 j# C H7 R/ w: K1 \( W: ` -f/--fail 连接失败时不显示http错误 ~. c% O. G0 D; S/ J -o/--output 把输出写到该文件中% o v$ G& n1 `7 B' q { -O/--remote-name 把输出写到该文件中,保留远程文件的文件名) R( ]2 P6 P/ D6 A* r6 d$ } -r/--range 检索来自HTTP/1.1或FTP服务器字节范围. h. K' c9 s( G- S -s/--silent 静音模式。

u- n3 d1 e# Y

不输出任何东西6 [ u0 K" W% s% M -T/--upload-file 上传文件 H& K4 j8 C1 r7 r9 k S; p6 h -u/--user 设置服务器的用户和密码' ~! \# h# |6 r' O; B: A -w/--write-out [format] 什么输出完成后 - n3 j& L! f' |4 s- N -x/--proxy 在给定的端口上使用HTTP代理4 v+ Y/ a! Y* [$ k3 g- f6 W2 O -#/--progress-bar 进度条显示当前的传送状态0 R- T4 t' W% `" d # n- R$ X G4 U2 r7 L9 X% g- O) N 其他参数:( T& ?0 r$ t$ u* g6 M$ ` -a/--append 上传文件时,附加到目标文件( c/ c2 O7 w( \$ H z --anyauth 可以使用“任何”身份验证方法7 j0 C6 J' L l x8 Z; R2 g( R% B5 L --basic 使用HTTP基本验证 ' X6 A: I6 Q: l6 d+ o$ s4 W3 n) R -B/--use-ascii 使用ASCII文本传输 # f# y/ ^6 W, W: |; b: m' Q5 N -d/--data HTTP POST方式传送数据 ' Q. w/ m9 R0 [/ n --data-ascii 以ascii的方式post数据2 n9 Y& ?- y% d/ V5 E- T7 S6 ~* L --data-binary 以二进制的方式post数据 5 d' G2 ~) V+ |$ N --negotiate 使用HTTP身份验证 * @; A0 Z) }1 P1 N8 [) \# ? --digest 使用数字身份验证0 T& j- M3 s( ]( F --disable-eprt 禁止使用EPRT或LPRT* c; z) B4 ?1 R z# g, i --disable-epsv 禁止使用EPSV + L* Q1 f6 v$ x1 c/ ^ --egd-file 为随机数据(SSL)设置EGD socket路径 / D( F# K9 f/ u --tcp-nodelay 使用TCP_NODELAY选项 : c, U5 d3 W! [ -E/--cert 客户端证书文件和密码 (SSL) & Q5 H4 f# A' H% s0 K --cert-type 证书文件类型 (DER/PEM/ENG) (SSL)0 h v" x1 {! x) G --key 私钥文件名 (SSL)( Q# o6 {: _& X$ s+ Q n --key-type 私钥文件类型 (DER/PEM/ENG) (SSL) & S3 N3 r0 M1 Q; M3 Q5 [0 S --pass 私钥密码 (SSL) u, q- h R1 _ --engine 加密引擎使用 (SSL). "--engine list" for list , T! x, _6 A/ _$ T1 U2 l --cacert CA证书 (SSL)! W$ a- S/ `# i! L --capath CA目 (made using c_rehash) to verify peer against (SSL) 7 F! H% X% d) j- a; @9 \6 f/ ]. U --ciphers SSL密码$ B( n& d- b3 ~& i4 h! N2 ~2 R7 W --compressed 要求返回是压缩的形势 (using deflate or gzip) " a5 h) L- p; r8 d. a2 q --connect-timeout 设置最大请求时间& x; f! w2 }( [- ] --create-dirs 建立本地目录的目录层次结构 : }4 O4 i& r/ N1 H/ o --crlf 上传是把LF转变成CRLF# W" c6 y( R7 O5 B$ `# Q/ \! _ --ftp-create-dirs 如果远程目录不存在,创建远程目录 + [2 `' j+ v; y --ftp-method [multicwd/nocwd/singlecwd] 控制CWD的使用 ! \9 [( g) c4 l3 L7 c --ftp-pasv 使用 PASV/EPSV 代替端口/ S* p3 h$ z, j V. W' u --ftp-skip-pasv-ip 使用PASV的时候,忽略该IP地址: z& T; |8 \+ C# e --ftp-ssl 尝试用 SSL/TLS 来进行ftp数据传输 : N" h: f% P6 s/ t# ^. g3 G --ftp-ssl-reqd 要求用 SSL/TLS 来进行ftp数据传输. i( R, Y7 ^9 i# J* N3 J -F/--form 模拟http表单提交数据8 i: X, R. G% s) V -form-string 模拟http表单提交数据( o; }; y* V& H$ p6 E# o, A -g/--globoff 禁用网址序列和范围使用{}和[]( k' L# m* F1 X/ u+ Q# N -G/--get 以get的方式来发送数据: m1 E; {# n/ y" \5 o* U/ F5 v -h/--help 帮助 : q4 m5 l! C* N6 l+ ?* L -H/--header 自定义头信息传递给服务器' ?8 n& V3 z0 b. ~' z' p3 @8 O --ignore-content-length 忽略的HTTP头信息的长度 $ k, @0 I1 \; k% P -i/--include 输出时包括protocol头信息, G& j8 T2 Q+ r4 V -I/--head 只显示文档信息 5 V( H7 C5 T4 n3 U$ \0 I, V% E -j/--junk-session-cookies 读取文件时忽略session cookie9 b/ W, h/ c n --interface 使用指定网络接口/地址9 a, Q) c* `; \" t1 |1 j, U --krb4 使用指定安全级别的krb4 ' e7 b P1 o9 ~6 b" i( X0 F) j -k/--insecure 允许不使用证书到SSL站点 - X& J/ n+ d# ^4 K3 D o) o8 v -K/--config 指定的配置文件读取/ |4 o O5 O1 L) `7 e. u+ `0 w+ [ -l/--list-only 列出ftp目录下的文件名称4 A3 z- j$ t& b% ` --limit-rate 设置传输速度: E. U4 x$ V! u5 x0 e* _ --local-port 强制使用本地端口号 # F; v4 B' v+ f$ @2 b. a0 _. O -m/--max-time 设置最大传输时间5 G; o1 d7 b4 {0 h8 m/ ~ --max-redirs 设置最大读取的目录数3 r# j. q% O- N L/ I6 h. k --max-filesize 设置最大下载的文件总量# {( q+ ?+ d7 ^% k9 S: A7 h! { -M/--manual 显示全手动$ O5 ^3 w! N/ @2 {3 W) J -n/--netrc 从netrc文件中读取用户名和密码 % }. N7 w- b( x0 f: s+ r# `0 r# \ --netrc-optional 使用 .netrc 或者 URL来覆盖-n _3 n& A0 M$ C7 b7 j" Y5 P --ntlm 使用 HTTP NTLM 身份验证 7 |# k' ]: R4 b' R1 ^& y# v4 B& S -N/--no-buffer 禁用缓冲输出. q% C( l1 M+ {/ J8 T N2 L$ M -p/--proxytunnel 使用HTTP代理 & k! c0 X* V- x0 o ?% d --proxy-anyauth 选择任一代理身份验证方法 # ^- T! r" Q0 o --proxy-basic 在代理上使用基本身份验证: f( g" Z' z. z --proxy-digest 在代理上使用数字身份验证/ H0 z! c; U3 U --proxy-ntlm 在代理上使用ntlm身份验证/ A& C; L8 n. [5 D# a. w" D -P/--ftp-port 使用端口地址,而不是使用PASV! T4 v/ R; @7 q s* M+ ~0 v$ U9 A6 A -Q/--quote 文件传输前,发送命令到服务器 6 h3 d( Z9 T- D& Y" v. { --range-file 读取(SSL)的随机文件4 r6 V6 t3 y' X) a: U- H -R/--remote-time 在本地生成文件时,保留远程文件时间8 l# B d# a$ R9 H8 e" K --retry 传输出现问题时,重试的次数2 d! }0 N7 s) u/ P/ N --retry-delay 传输出现问题时,设置重试间隔时间: c8 i, K( ~& V% E --retry-max-time 传输出现问题时,设置最大重试时间 5 n$ N7 i1 H" S; @- v2 ? -S/--show-error 显示错误 9 O5 q& {2 d/ f* }$ U* b --socks4 用socks4代理给定主机和端口6 D: v: Y! U: R- f --socks5 用socks5代理给定主机和端口% r* C) `( p( d: z. Q- |7 |% @5 L( [ -t/--telnet-option Telnet选项设置) m K9 V8 C3 F( h- X2 J: p/ r --trace 对指定文件进行debug 2 F! W7 c! ^8 l1 r --trace-ascii Like --跟踪但没有hex输出 5 ~8 {( }/ H# O7 l --trace-time 跟踪/详细输出时,添加时间戳 + L% d7 l& M$ ]6 D/ O+ v# s --url Spet URL to work with ; X/ L, @2 b0 N# Z -U/--proxy-user 设置代理用户名和密码3 E& e* B$ b& y! u- R2 h -V/--version 显示版本信息 ; `9 Q9 ~' V1 w2 y1 x1 z -X/--request 指定什么命令 3 Y* X0 o# {3 ~5 t* a% t2 C3 H -y/--speed-time 放弃限速所要的时间。

) _6 G/ G2 G9 r! N7 r0 M Q- Q9 Y

默认为30 7 }$ ?0 J r9 ?, s! K -Y/--speed-limit 停止传输速度的限制,速度时间秒 3 ?5 i4 N6 o5 N. u -z/--time-cond 传送时间设置+ ^/ y" x% r' M/ t+ g* m/ f -0/--http1.0 使用HTTP 1.0 # y: ~: i& D1 N -1/--tlsv1 使用TLSv1(SSL) . W4 V6 x4 y) E -2/--sslv2 使用SSLv2的(SSL) 8 \- c# j% G5 T$ n -3/--sslv3 使用的SSLv3(SSL)3 _; r( \$ \: p+ I8 h! H --3p-quote like -Q for the source URL for 3rd party transfer, D' p9 y6 C9 G9 i5 }) A: z! U: i$ S --3p-url 使用url,进行第三方传送+ C# R+ X; A. _, m* i% ~ --3p-user 使用用户名和密码,进行第三方传送 `. O5 H0 Y; s0 h* L -4/--ipv4 使用IP4. T7 `5 K" z: J -6/--ipv6 使用IP6。

, Y* j" }- U3 q+ s$ k! ~ 9 Y' d2 v- l1 R4 t! G0 g F 9 k. n c( h0 S: G % E, }, Y$ A$ c5 l T ( J- Y; A5 J+ c. e, k5 y1 l/ j

暂时无法加载帖子列表

回复

使用道具 举报

只为红颜一笑 发表于 2026-01-17 02:27:18 | 显示全部楼层
说得很实在,没有夸大其词,这种真实分享太难得了
回复

使用道具 举报

耐诺0 发表于 2026-08-19 23:03:37 | 显示全部楼层
蹲了这么久,终于看到有价值的讨论,支持一下!
回复

使用道具 举报

qq89623553 发表于 2026-09-12 16:35:51 | 显示全部楼层
完全赞同,我也是这么认为的,英雄所见略同~
回复

使用道具 举报

花开.彼岸 发表于 2026-10-05 23:23:48 | 显示全部楼层
楼主辛苦了,整理这么多内容,必须点赞收藏
回复

使用道具 举报

codyness 发表于 2026-10-16 23:19:18 | 显示全部楼层
学习到了,之前一直没注意过这个点,受教了
回复

使用道具 举报

    您需要登录后才可以回帖 登录 | 加入怎通

    本版积分规则

    QQ|手机版|小黑屋|网站地图|真牛社区 ( 苏ICP备2023040716号-2 )

    GMT+8, 2026-11-1 04:00 , Processed in 0.035813 second(s), 25 queries , Gzip On.

    免责声明:本站信息来自互联网,本站不对其内容真实性负责,如有侵权等情况请联系420897364#qq.com(把#换成@)删除。

    Powered by Discuz! X3.5

    快速回复 返回顶部 返回列表