pub struct Http1Parser { /* private fields */ }Expand description
HTTP/1.1 请求解析器
Implementations§
Source§impl Http1Parser
impl Http1Parser
Sourcepub fn new(config: Http1Config) -> Self
pub fn new(config: Http1Config) -> Self
创建解析器
Sourcepub fn state(&self) -> ParserState
pub fn state(&self) -> ParserState
当前状态
Sourcepub fn check_idle_timeout(&mut self, now_ms: u64) -> Result<(), Http1Error>
pub fn check_idle_timeout(&mut self, now_ms: u64) -> Result<(), Http1Error>
检查空闲超时(Slowloris 防护)
由连接管理层在每个事件循环周期调用。
计时基准为最近一次收到字节的时间(last_activity_ms,
未记录时回退首字节时间):头部阶段自首字节起计时,
body/chunked 阶段自最近一次活跃起计时——任何阶段超时一律
fail-closed,杜绝 body 中途 Slowloris 盲区(M-9)。
§参数
now_ms- 当前时间戳(毫秒)
Sourcepub fn note_first_byte(&mut self, now_ms: u64)
pub fn note_first_byte(&mut self, now_ms: u64)
通知首字节到达(由连接层在收到首个数据时调用)
仅记录首字节时间;增量数据的活跃刷新请使用
Self::note_activity(每次收到数据都应调用)。
Sourcepub fn note_activity(&mut self, now_ms: u64)
pub fn note_activity(&mut self, now_ms: u64)
通知活动时间(由连接层在每次收到数据时调用)
刷新最近一次活跃时间戳,并兼具首字节记录语义。 body/chunked 阶段的 Slowloris 防护依赖本时间戳(M-9)。
Sourcepub fn feed(
&mut self,
input: &[u8],
) -> Result<(Option<HttpRequest>, usize), Http1Error>
pub fn feed( &mut self, input: &[u8], ) -> Result<(Option<HttpRequest>, usize), Http1Error>
解析输入数据
Trait Implementations§
Source§impl Clone for Http1Parser
impl Clone for Http1Parser
Source§fn clone(&self) -> Http1Parser
fn clone(&self) -> Http1Parser
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for Http1Parser
impl RefUnwindSafe for Http1Parser
impl Send for Http1Parser
impl Sync for Http1Parser
impl Unpin for Http1Parser
impl UnsafeUnpin for Http1Parser
impl UnwindSafe for Http1Parser
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