文章缘由
最近在进行调试时,我多次使用 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 到文件。