本文基于 Boost.Beast 构建一个可编译运行的 HTTP 服务器,讲解消息容器、Body 体系、读写 API、buffer 选择与超时模型。所有 API 均对照 Beast 官方文档核实,代码取自官方示例并整理。
本专栏 Asio 系列讲解了 TCP/UDP 基础,Beast 建立在 Asio 之上,是 HTTP/WebSocket 的高层封装。
一、Boost.Beast 是什么
Boost.Beast 是基于 Boost.Asio 的 HTTP 和 WebSocket 库,提供:
- HTTP/1.1完整支持(请求/响应、chunked、keep-alive)
- WebSocket协议(RFC 6455,含 permessage-deflate)
- 类型安全的消息容器(
request<Body>/response<Body>) - 可插拔的 Body 体系(string / file / buffer / 自定义)
- 与 Asio 无缝集成(同步/异步/协程/C++20 awaitable)
命名空间简写:
namespacebeast