Skip to main content

Crate zenith_http1

Crate zenith_http1 

Source
Expand description

Zenith HTTP/1.1 - HTTP/1.1 协议实现

本 crate 提供 HTTP/1.1 协议的解析与处理能力,包括:

  • HTTP/1.1 请求解析(严格 RFC 7230/7231)
  • 请求走私防护(CL.TE / TE.CL / TE.TE)
  • 分块传输编码(Chunked)
  • Keep-Alive 连接管理
  • 头部规范(大小写、编码、重复头部)

设计原则:

  • 热路径零堆分配(使用预分配缓冲区)
  • 常量时间头部查找(预哈希表)
  • 规范化所有输入为统一形态,消除协议差分

§安全保证

  • 严格禁止 \r\n 在头部值内(请求走私基础检测)
  • 严格 Content-Length / Transfer-Encoding 二选一
  • 拒绝 \x00 \x0b \x0c 等非法控制字符
  • 强制 Host 头存在
  • 头部名称大小写规范化(lowercase + 字符白名单)

Re-exports§

pub use chunked::ChunkedDecoder;
pub use chunked::ChunkedState;
pub use client::ClientError;
pub use client::ClientResponse;
pub use client::ResponseParser;
pub use client::encode_request;
pub use client::parse_response;
pub use client::parse_response_eof;
pub use connection::Http1Connection;
pub use connection::Http1ConnectionState;
pub use parser::Http1Parser;
pub use parser::ParserState;
pub use response::Http1ResponseEncoder;
pub use response::ResponseSerializeError;
pub use smuggling::SmugglingDetector;
pub use smuggling::SmugglingKind;
pub use types::Http1Config;
pub use types::Http1Error;
pub use types::HttpRequest;
pub use types::HttpRequestLine;

Modules§

chunked
HTTP/1.1 Chunked 传输编码解析
client
HTTP/1.1 客户端编解码(反向代理上游转发专用)
connection
HTTP/1.1 连接管理
parser
HTTP/1.1 请求解析器
response
HTTP/1.1 响应序列化器
smuggling
HTTP/1.1 请求走私检测器
types
HTTP/1.1 类型定义