xfy911
|
7fe52a3b6e
|
feat(http2): 添加 HTTP/2 反向代理支持
实现 HTTP/2 客户端连接通过 HTTP/2 流转发到 HTTP/1.1 后端:
- 在 http2.c 中新增 http2_serve_proxy() 函数
- 实现请求重组:将 HTTP/2 伪头(:method, :path, :authority)重组为 HTTP/1.1 请求
- 实现后端响应解析:解析 HTTP/1.1 响应头并通过 nghttp2 提交 HTTP/2 响应帧
- 过滤 hop-by-hop 头(Connection, Transfer-Encoding 等)
- 添加 X-Forwarded-For 头
- 支持 TLS 和非 TLS 后端连接
- 在 server.c 中注入代理配置到 HTTP/2 会话
- 修复 parse_http1_response 中 body_len 下溢问题
- 添加 HTTP/2 代理集成测试
当前限制:
- 采用非流式方案(先收集完整后端响应再发送)
- 连接池对 HTTP/1.0 后端(无 keep-alive)处理有待完善
- 单元测试:142 项全部通过
- 集成测试:HTTP/2 GET 代理测试通过
|
2026-06-09 09:39:08 +08:00 |
|
xfy911
|
d0f3bb860f
|
docs(http2): 添加完整的中文 Doxygen 注释
为 http2.c 所有 29 个函数添加中文文档注释:
- 压缩辅助函数(is_compressible_mime, gzip_compress, brotli_compress)
- 会话管理(init, cleanup, create, destroy, is_http2, get, set_context, upgrade)
- 数据收发(recv, send_pending, want_read, want_write)
- nghttp2 回调(send, begin_headers, header, frame_recv, stream_close, data_chunk)
- 静态文件服务(format_http_time, generate_etag, parse_http_time, match_etag,
data_source_read, serve_directory, serve_static)
- 连接处理(on_connection_accepted)
所有注释包含功能说明、参数说明和返回值说明。
|
2026-06-04 21:07:05 +08:00 |
|