第一次用 curl:一条命令看懂 HTTP 请求到底在干什么

举报
yd_271493268 发表于 2026/10/23 08:38:41 2026/10/23
【摘要】 每个后端工程师的工具箱里都躺着一条命令:curl。它长得不起眼,curl https://example.com 就能把网页抓回来。但第一次加个 -v 参数看它的输出,很多人就懵了:一大串以 > 和 < 开头的行,到底在说什么?其实 -v 打印的,就是一次 HTTP 请求的"全程录像"。以 > 开头的行,是你的电脑发出去的;以 < 开头的行,是服务器回来的。把这两部分分开看,HTTP 一下子...

每个后端工程师的工具箱里都躺着一条命令:curl。它长得不起眼,curl https://example.com 就能把网页抓回来。但第一次加个 -v 参数看它的输出,很多人就懵了:一大串以 > 和 < 开头的行,到底在说什么?

其实 -v 打印的,就是一次 HTTP 请求的"全程录像"。以 > 开头的行,是你的电脑发出去的;以 < 开头的行,是服务器回来的。把这两部分分开看,HTTP 一下子就透明了。

先看发出去的部分。第一行 GET / HTTP/1.1 叫请求行:GET 是动作(我要拿东西),/ 是要拿的路径,HTTP/1.1 是协议版本。接下来几行是请求头,比如 Host: example.com 告诉服务器"我要找的是这个域名"——同一台服务器可能托管着几十个网站,全靠 Host 区分;User-Agent: curl/8.x 则是自报家门,声明"我是 curl"。请求头本质上就是客户端递过去的一张"便签",把上下文交代清楚。

再看回来的部分。第一行 HTTP/1.1 200 OK 叫状态行,200 就是"成了"。然后是一串响应头:Content-Type 告诉你回来的东西是什么类型(text/html 还是 application/json),Content-Length 告诉你有多大。响应头读完,空一行,剩下的就是真正的响应体——网页 HTML、JSON 数据,都在这里。

理解了这个结构,日常调试就有了抓手。接口返回 404?先看请求行里的路径拼对了没有。拿到了数据但乱码?看 Content-Type 是不是和实际内容对不上。请求特别慢?-v 输出里发出去和回来之间的时间差,就是网络加服务器处理的耗时,一目了然。

还有两个常用参数值得记住:-X POST 可以把 GET 换成 POST,-d 'name=a' 则带上请求体,合起来就是一条最简的"提交表单"命令;-H 'Authorization: xxx' 可以手动加请求头,调需要鉴权的接口时天天用。

下次接口调不通,别急着改代码,先 curl -v 看一眼。请求发出去什么样、服务器回来什么样,全写在那几行 > 和 < 里。能读懂一次完整的请求-响应,你就掌握了排查一切 HTTP 问题的通用钥匙。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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