Repolode
yhirose

yhirose/cpp-httplib

一个 C++11 单头文件库,用于构建 HTTP/HTTPS 服务端和客户端,采用阻塞式 socket I/O。

Star
16,923
Fork
2,777
未关闭 Issue
0
最近提交
16小时前

这是什么?

cpp-httplib 是一个跨平台的 C++11 库,同时提供 HTTP/HTTPS 服务端和客户端功能。它以单个头文件 httplib.h 发布,项目中只需引入该文件即可使用。库采用阻塞式 socket I/O,仅支持 HTTP/1.1,不实现 HTTP/2 和 HTTP/3。

在服务端方面,它支持带路径参数和正则表达式的路由、静态文件服务及 MIME 类型映射、multipart 表单与文件上传、分块传输和流式内容输出,以及 keep-alive 连接。请求处理前后、异常等环节都可以挂载自定义处理函数。

TLS 可通过编译宏选择 OpenSSL(3.0 及以上)、Mbed TLS 或 wolfSSL。库还提供证书校验配置、双向 TLS(mTLS),并在 macOS 和 Windows 上接入系统证书库。

核心功能

  • 01单头文件引入,基础 HTTP 使用无需额外构建依赖
  • 02同一个库内同时包含 HTTP 服务端和客户端
  • 03支持通过 OpenSSL、Mbed TLS 或 wolfSSL 实现 HTTPS
  • 04支持带路径参数和正则表达式的路由
  • 05支持静态文件服务、multipart 上传以及分块或流式响应
  • 06支持双向 TLS 和证书校验配置

适用场景

  • 在 C++ 应用中嵌入轻量级 HTTP 接口,无需引入大型框架
  • 编写通过 HTTPS 调用 REST API 的 C++ 客户端
  • 在 C++ 工具中提供静态文件或简单 Web API
  • 在 C++ 项目中快速搭建本地 HTTP 服务原型

快速上手

  1. 1

    从仓库下载 httplib.h 文件

  2. 2

    在 C++ 代码中包含 httplib.h,并按示例构建服务器或客户端

使用前须知

  • 使用阻塞式套接字 I/O,不适合非阻塞设计。
  • 仅支持 HTTP/1.1,未实现 HTTP/2 和 HTTP/3。
  • 不支持 32 位平台,且未经过安全审查。

标签

常见问题

cpp-httplib 是什么?
一个 C++11 单头文件库,用于构建 HTTP/HTTPS 服务端和客户端,采用阻塞式 socket I/O。 cpp-httplib 是一个跨平台的 C++11 库,同时提供 HTTP/HTTPS 服务端和客户端功能。它以单个头文件 httplib.h 发布,项目中只需引入该文件即可使用。库采用阻塞式 socket I/O,仅支持 HTTP/1.1,不实现 HTTP/2 和 HTTP/3。
cpp-httplib 可以免费使用吗?用的什么许可证?
cpp-httplib 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
cpp-httplib 还在维护吗?
活跃维护中。cpp-httplib 最近一次提交是在 2026年10月22日。
cpp-httplib 适合用来做什么?
在 C++ 应用中嵌入轻量级 HTTP 接口,无需引入大型框架 编写通过 HTTPS 调用 REST API 的 C++ 客户端 在 C++ 工具中提供静态文件或简单 Web API 在 C++ 项目中快速搭建本地 HTTP 服务原型
cpp-httplib 怎么安装和运行?
从仓库下载 httplib.h 文件 在 C++ 代码中包含 httplib.h,并按示例构建服务器或客户端
在哪里获取 cpp-httplib?
源代码和安装说明在 GitHub 上:https://github.com/yhirose/cpp-httplib

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目