pub struct Http1Connection { /* private fields */ }Expand description
HTTP/1.1 连接
Implementations§
Source§impl Http1Connection
impl Http1Connection
Sourcepub fn new(config: Http1Config) -> Self
pub fn new(config: Http1Config) -> Self
创建连接
Sourcepub fn state(&self) -> Http1ConnectionState
pub fn state(&self) -> Http1ConnectionState
当前状态
Sourcepub fn on_data(
&mut self,
data: &[u8],
) -> Result<(Option<HttpRequest>, usize), Http1Error>
pub fn on_data( &mut self, data: &[u8], ) -> Result<(Option<HttpRequest>, usize), Http1Error>
输入数据,尝试解析请求
§返回
- Ok(Some(req, body_consumed)): 已解析完整请求,可能包含 body 字节消耗
- Ok((None, consumed)): 需要更多数据
- Err(err): 协议错误(错误会自动关闭连接)
Sourcepub fn body_complete(&mut self, body: Vec<u8>)
pub fn body_complete(&mut self, body: Vec<u8>)
设置请求体已接收完成
Sourcepub fn current_request(&self) -> Option<&HttpRequest>
pub fn current_request(&self) -> Option<&HttpRequest>
获取当前请求
Sourcepub fn response_sent(&mut self)
pub fn response_sent(&mut self)
响应发送完成
Sourcepub fn on_error(&mut self, _err: &Http1Error)
pub fn on_error(&mut self, _err: &Http1Error)
处理错误:关闭连接
Sourcepub fn requests_handled(&self) -> u64
pub fn requests_handled(&self) -> u64
获取已处理请求数
Sourcepub fn update_time(&mut self, now_ms: u64)
pub fn update_time(&mut self, now_ms: u64)
更新当前时间戳(由事件循环每周期调用)
必须在首次 Self::on_data 之前调用至少一次,否则 parser 的
first_byte_ms 不会被设置(note_activity 被跳过),Slowloris
空闲超时检测在首字节阶段不生效。调用后 time_initialized 置 true,
后续 on_data 才会向 parser 刷新活跃时间戳。
Sourcepub fn check_timeout(&mut self) -> Result<(), Http1Error>
pub fn check_timeout(&mut self) -> Result<(), Http1Error>
检查空闲超时(Slowloris 防护)
由事件循环在每个周期调用。如果请求解析超时,关闭连接。
Trait Implementations§
Source§impl Debug for Http1Connection
impl Debug for Http1Connection
Auto Trait Implementations§
impl Freeze for Http1Connection
impl RefUnwindSafe for Http1Connection
impl Send for Http1Connection
impl Sync for Http1Connection
impl Unpin for Http1Connection
impl UnsafeUnpin for Http1Connection
impl UnwindSafe for Http1Connection
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more