Skip to main content

zenith_http1/
lib.rs

1//! Zenith HTTP/1.1 - HTTP/1.1 协议实现
2//!
3//! 本 crate 提供 HTTP/1.1 协议的解析与处理能力,包括:
4//! - HTTP/1.1 请求解析(严格 RFC 7230/7231)
5//! - 请求走私防护(CL.TE / TE.CL / TE.TE)
6//! - 分块传输编码(Chunked)
7//! - Keep-Alive 连接管理
8//! - 头部规范(大小写、编码、重复头部)
9//!
10//! 设计原则:
11//! - 热路径零堆分配(使用预分配缓冲区)
12//! - 常量时间头部查找(预哈希表)
13//! - 规范化所有输入为统一形态,消除协议差分
14//!
15//! # 安全保证
16//! - 严格禁止 \r\n 在头部值内(请求走私基础检测)
17//! - 严格 Content-Length / Transfer-Encoding 二选一
18//! - 拒绝 \x00 \x0b \x0c 等非法控制字符
19//! - 强制 Host 头存在
20//! - 头部名称大小写规范化(lowercase + 字符白名单)
21
22#![deny(unsafe_code)]
23#![deny(missing_debug_implementations)]
24#![warn(missing_docs)]
25
26pub mod chunked;
27pub mod client;
28pub mod connection;
29pub mod parser;
30pub mod response;
31pub mod smuggling;
32pub mod types;
33
34pub use chunked::{ChunkedDecoder, ChunkedState};
35pub use client::{ClientError, ClientResponse, ResponseParser, encode_request, parse_response, parse_response_eof};
36pub use connection::{Http1Connection, Http1ConnectionState};
37pub use parser::{Http1Parser, ParserState};
38pub use response::{Http1ResponseEncoder, ResponseSerializeError};
39pub use smuggling::{SmugglingDetector, SmugglingKind};
40pub use types::{Http1Config, Http1Error, HttpRequest, HttpRequestLine};