需要 Boost.Asio 和 Boost.Beast;不支持 Standalone Asio 配置。
arknet 的 HTTP 客户端、服务端和 Session 交换 Beast HTTP/1 消息。
启用 ARKNET_ENABLE_SSL 后,HTTPS 通过 TLS 提供相同消息接口。
两种 Asio 依赖方案公开相同类型和回调签名。
开始使用
单次 HTTP 请求提供独立完成通知、超时与取消。
能力
| 分类 | 已提供 |
|---|---|
| 端点 | http_client、http_server、http_session,以及安全的 https_* 变体 |
| HTTP 版本 | HTTP/1.0 与 HTTP/1.1 |
| 连接 | keep-alive、有序流水线、重连和自定义 Session |
| 解析 | chunked body、HEAD 响应语义、信息响应和 100-continue |
| 消息 | 发送持有 string_body/empty_body;接收使用 string_body |
| 应用层 | 方法/路径路由、参数、通配符和中间件 |
| 上限 | 头部/body 解析上限和有界发送队列 |
| TLS | 证书链与 DNS/IP 验证,可选 mTLS |
HTTP 适用于请求/响应 API 和服务间通信。HTTP Upgrade 后需要长期双向消息通道时, 使用 WebSocket。
范围与默认值
头部默认上限为 8192 字节,body 默认上限为 16 MiB。客户端上限用于响应, 服务端配置会复制给新 Session。接收消息先在内存中组装,没有流式 body 接口。
服务端拒绝缺失/重复的 HTTP/1.1 Host,以及不支持的 Expect。Beast 验证线路拆包; 应用验证路径、头部和业务数据。路由框架验证路径,但不提供身份认证、授权或文件访问。
HTTP/2 和 HTTP/3 仍为 TODO。 Beast 提供 HTTP/1 和 WebSocket,不包含这两种协议。 本版也没有 multipart 辅助接口、文件 body 流式传输或公开 HTTP 协程接口。