文章缘由
最近在进行调试时,我多次使用 curl
命令来测试和调试自己的抓包程序。为了方便日后查询和使用,我决定整理一篇笔记类型的文章,记录常用的 curl
命令和技巧。
常用的 curl
命令及其解释
-
基本用法
发送一个简单的 HTTP 请求并显示返回的内容:
curl <http://example.com>
这个命令会从
http://example.com
获取网页内容并在终端上显示。 -
保存到文件
将返回的内容保存到一个文件中:
curl -o filename.html <http://example.com>
o
选项指定输出文件名,将内容保存到filename.html
。
-
跟踪重定向
如果请求的 URL 有重定向,
curl
默认不会跟随重定向。使用-L
可以启用跟随重定向:curl -L <http://example.com>
-
显示请求头
显示请求的响应头信息(例如,HTTP 状态码、内容类型等):
curl -I <http://example.com>
I
选项告诉curl
只获取头部信息。
-
POST 请求
发送一个 POST 请求,通常用于提交数据:
curl -X POST -d "name=John&age=30" <http://example.com>
X POST
指定请求方法为 POST,d
后面跟随要提交的数据。
-
发送 JSON 数据
使用 POST 请求发送 JSON 数据:
curl -X POST -H "Content-Type: application/json" -d '{"name": "John", "age": 30}' <http://example.com>
H
用于设置 HTTP 请求头,d
用于传递数据,Content-Type
指定数据格式。
-
上传文件
上传文件到服务器:
curl -X POST -F "file=@filename.txt" <http://example.com/upload>
F
用于指定文件上传,@filename.txt
表示要上传的文件。
-
使用代理服务器
如果需要通过代理服务器发送请求,可以使用
-x
选项指定代理:curl -x <http://proxy.example.com:8080> <http://example.com>
-
显示详细信息
如果需要调试请求过程,使用
-v
选项来显示详细的请求和响应信息:curl -v <http://example.com>
-
使用基本认证
使用 HTTP 基本认证(用户名和密码)进行请求:
curl -u username:password <http://example.com>
-
使用 Cookie
发送包含 cookies 的请求:
curl -b "name=value" <http://example.com>
或者将 cookies 保存到文件中并在后续请求中使用:
curl -c cookies.txt <http://example.com> curl -b cookies.txt <http://example.com>
-
限速
限制下载速度:
curl --limit-rate 100k <http://example.com>
这个命令将下载速度限制为 100 KB/s。
-
发送多次请求
如果你需要同时发送多个请求,可以使用
-Z
来实现:curl -Z <http://example.com> -Z <http://example2.com>
常见 curl
选项
X <request_type>
: 指定 HTTP 请求类型(如 GET、POST、PUT、DELETE 等)。d <data>
: 发送 POST 请求时携带的数据。H <header>
: 添加 HTTP 头部信息。I
: 获取响应头部信息。o <file>
: 将响应内容输出到指定文件。L
: 跟随重定向。u <user:password>
: 使用 HTTP 基本认证。v
: 显示请求和响应的详细信息。x <proxy>
: 使用代理服务器。b <cookie>
: 发送 Cookie。c <cookie_file>
: 保存 Cookie 到文件。