用 curl 入门:一条命令看懂 HTTP 请求

举报
yd_225636183 发表于 2026/11/01 09:53:32 2026/11/01
【摘要】 用 curl 入门:一条命令看懂 HTTP 请求 为什么要先学 curl写程序、调接口、排障的时候,我们经常需要问一个最基本的问题:服务器到底返回了什么?浏览器能打开网页,却把请求和响应的细节都藏了起来。curl 就是把这些细节摊开给你看的工具:它在终端里发一次 HTTP 请求,把状态码、响应头和正文原样打印出来,出问题时一眼就能定位是网络不通、地址写错,还是服务器返回了错误。curl 几...

用 curl 入门:一条命令看懂 HTTP 请求

为什么要先学 curl

写程序、调接口、排障的时候,我们经常需要问一个最基本的问题:服务器到底返回了什么?浏览器能打开网页,却把请求和响应的细节都藏了起来。curl 就是把这些细节摊开给你看的工具:它在终端里发一次 HTTP 请求,把状态码、响应头和正文原样打印出来,出问题时一眼就能定位是网络不通、地址写错,还是服务器返回了错误。

curl 几乎所有系统都自带,不用安装、不用写代码。学会它,等于随身带了一个最小的“网络调试器”,以后学接口开发、做自动化脚本都会轻松很多。

第一次请求:先看状态码和正文

最简单的用法是直接跟一个网址:

curl https://example.com

这条命令会把网页的 HTML 原样输出到终端。如果只想先确认服务器通不通,不想被一大段正文刷屏,可以只看响应头:

curl -I https://example.com

-I 只取响应头,第一行就是状态码:200 表示成功,301 或 302 表示重定向,404 表示地址不存在,500 表示服务器内部出错。先看状态码,再决定往下查哪一步,这是排障最省时间的习惯。

几个最常用的参数

只看状态码还不够,日常还会用到这几个参数。-L 让 curl 自动跟随重定向,地址被搬家时不会只拿到一个 302 就停下;-o 可以把结果存成文件,而不是直接打印到屏幕上,下载文件、保存接口返回都很方便;-v 会打印完整的请求和响应过程,包括 DNS 解析、TLS 握手和请求头,网络不通时靠它找原因。

发送数据时,-X 指定请求方法,-H 加请求头,-d 带上请求体。比如向一个接口发 JSON:

curl -X POST https://example.com/api \
  -H "Content-Type: application/json" \
  -d '{"name": "test"}'

注意 -d 默认用 POST,但显式写出 -X 会让意图更清楚;请求头里的内容类型写错,是接口调不通最常见的低级错误之一。

新手常踩的三个坑

第一个坑是把输出和错误混在一起:curl 的进度信息走标准错误输出,重定向到文件时要用 -s 关掉进度,或者用 -o 直接存文件,否则文件里会混进进度条。第二个坑是忽略 HTTPS 证书报错:生产环境不要图省事加 -k 跳过证书校验,那等于放弃了加密的意义,测试环境临时用可以,正式脚本里必须去掉。第三个坑是凭感觉猜参数:每个参数的含义用 curl --help 或 man curl 当场查,比背下来更可靠。

从一条命令到日常工具

curl 的真正价值不在单条命令,而在可重复:把调通的命令存进脚本,接口回归、服务健康检查、定时拉取数据都能用同一条命令完成。先跑通一次 GET、看懂一次状态码和响应头,再练 POST 和请求头,HTTP 请求这层窗户纸就捅破了。之后无论是看文档、调接口还是排查线上问题,你都会先问一句:先 curl 一下,看看服务器到底说了什么?

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。