一 HTTP协议相关
① 强制发出请求的http1.0
7.29 版本'默认'是http1.1
② 查看当前curl版本是否支持http2
方式'2': curl --version看'Features'
补充: '7.33.0' 版本才'引入' http2,才能使用'curl'发出http2.0版本的'请求'
③ 强制发送http3
说明: '了解'即可
二 HTTP Header 相关
① -i、-I 响应头
++++++++++++++++ "二者辨析" ++++++++++++++++
1、-i '小写' 参数可以显示 http response 的头信息,连同'网页源代码'一起
2、-I '大写' 参数则'只only显示' http response 的头信息
重点: curl '-I' 发起的是'HEAD'请求
3、demo '案例'讲解
② -D 将响应头保存到指定文件中
③ -H 自定义请求头
1、curl '某些'选项参数,相当于'自定义' 对应请求头
细节1: 如果某个请求头里定义了请求头的key但是'没有定义value',则需要在key后带上'分号;'
semicolon --> '分号'
细节2: 使用一个'冒号:'右边'不带任何值'的外部请求头'覆盖内部请求头'就可以'移除'内部请求头
例如: -H "Host:",空主机头 --> '自定义Host头 匹配nginx的server_name'
细节3: 多个'请求头'需要指定多个'-H' 参数
④ -b 发送Cookie请求头
理解: curl 内置选项的'请求头' 与 '-H'的'等价'形式
1、 '-b' | '--cookie' 发送'Cookie请求头'
说明: 这种方式是直接'将 Cookie 字符串'或'Cookie文件'写在'命令'中
等价: 也可以使用 -H 'Cookie:'来发送
注意:
1、Cookie多个'key-value'用'分号;'分割
2、读取'文件'作为Cookie请求头传递的'key-value'
Cookie原理、Set-Cookie常用字段、应用
⑤ -A 请求客户端
'-A' | '--user-agent' --> 一般使用'简写'
⑥ -e、--referer
说明: 'Referer' 请求头包含了请求'当前请求页面'的'来源页面'的地址 --> 从'哪里'跳转过来的
⑦ -c 获取响应头Set-Cookie
1、'-c' | '--cookie-jar' 获取'响应头' Set-Cookie --> "了解即可"
⑧ -X 请求方式 重点
1、 -X | '--request'
备注: curl -I '默认'发出的是'HEAD'请求,'只'获取'响应头',也即'元数据'信息
细节: 一般是'GET'请求、'-d'参数会进行'POST'请求
强调: 可以'支持' Restful API 的各种'语义'
2、各种'请求方式'的'语义'
说明: CDN 对各种'请求方法'有严格的支持
⑨ 请求方法的案例
1、'-G' | --get '强制'发送'GET'请求,而不是根据curl的'上下文' --> 例如 '-d'
细节点: 通过'附加-G'改变'-d(默认是POST)'的请求方式,也即'GET 请求'携带'body'
curl -G -d 使 GET 请求也可以携带请求体 GET和HEAD请求的区别
补充: -IG 发送'HEAD'请求 --> '-I'的优先级更'高'
遗留: 必须用'curl'的'场景'、curl的'漏洞'
例如: 低版本的'k8s'无法在'UI'页面侧选中,但是'API'接口还在,可以用curl创建'低版本'集群