curl:互联网的「瑞士军刀」,你每天都在用它

很多程序员可能不知道,自己每天都在间接使用一个 1998 年就诞生的开源项目。curl 的 GitHub Star 数超过 4.2 万,但它的影响力远不止于此。Windows、macOS、Linux 的系统里都预装了它,无数 App 和服务的底层数据请求,走的都是 curl 的代码。

正文顶部截图

它到底能干什么

简单说,curl 就是一个用 URL 传输数据的命令行工具。听起来平淡无奇,但它支持的协议数量让人吃惊:HTTP、HTTPS、FTP、SFTP、SMTP、IMAP、LDAP、MQTT、WebSocket,总共 25 种以上。

日常开发中,最常用的场景是发 HTTP 请求。调试 API 的时候,在终端里敲一行 curl 命令就能看到返回结果,比打开浏览器或者启动 Postman 快得多。

curl https://api.example.com/data

除了命令行工具,curl 背后还有一个叫 libcurl 的 C 语言库。很多你用过的软件,比如 Git、Docker、WordPress、Python 的 requests 库,底层都在调用 libcurl。可以说它是互联网基础设施的一部分。

为什么能活 28 年还在更新

1998 年至今,curl 一直在持续更新。作者 Daniel Stenberg 一个人维护了很多年,现在有了社区支持。

能活这么久,原因并不复杂。它解决的问题不会过时,只要有网络通信就需要传输数据,curl 干的就是这件事。而且它极其稳定,几乎不会引入破坏性变更。你 20 年前写的 curl 命令,今天大概率还能正常运行。

另一个原因是它的许可证非常宽松,MIT-like 协议,商用、修改、分发都没有限制。这让它被大量嵌入到商业产品中。

上手难度

零门槛。大多数系统已经预装了 curl,如果没有,包管理器一行命令搞定。用法也很直白,curl + URL 就能跑起来。官方文档写得清楚,man page 和 everything curl 两个资源覆盖了从入门到高级用法的全部内容。

README区域截图

说点实在的

如果你是开发者,但平时没怎么用过 curl,建议花半小时看看它的文档。它能替代很多场景下的 Postman 和其他 HTTP 客户端,而且在服务器环境里没有图形界面的时候,curl 就是你唯一的选择。

如果你是运维或者做后端的,curl 的 --resolve--proxy-v 这些参数组合起来,能解决很多网络调试中的疑难问题。

这个项目没什么花哨的功能,也不追热点。它就是把一件事做到极致,然后坚持了 28 年。这种项目在开源世界里其实不多。

。它就是把一件事做到极致,然后坚持了 28 年。这种项目在开源世界里其实不多。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐