pub struct Http2Settings {
pub header_table_size: u32,
pub enable_push: bool,
pub max_concurrent_streams: u32,
pub initial_window_size: u32,
pub max_frame_size: u32,
pub max_header_list_size: u32,
pub initial_window_update: u32,
pub send_all_settings: bool,
pub priority_tree: Option<PriorityTree>,
pub ping_interval: Option<Duration>,
pub handshake_timeout: Option<Duration>,
}Expand description
HTTP/2 SETTINGS for fingerprinting.
Fields§
§header_table_size: u32§enable_push: bool§max_concurrent_streams: u32§initial_window_size: u32§max_frame_size: u32§max_header_list_size: u32§initial_window_update: u32Initial connection-level WINDOW_UPDATE value sent after SETTINGS. Chrome: 15663105 (15MB), Firefox: 12517377 (12MB)
send_all_settings: boolWhether to send all 6 SETTINGS parameters (Chrome) or only selective ones (Firefox). Firefox only sends: HEADER_TABLE_SIZE (1), INITIAL_WINDOW_SIZE (4), MAX_FRAME_SIZE (5)
priority_tree: Option<PriorityTree>PRIORITY frame pattern to send during connection setup. Chrome sends PRIORITY frames for streams 3,5,7,9,11. Firefox sends different PRIORITY patterns.
ping_interval: Option<Duration>PING frame interval for connection keep-alive. Chrome sends PING frames approximately every 45 seconds. Set to None to disable automatic PING frames.
handshake_timeout: Option<Duration>Handshake timeout for waiting for server SETTINGS frame. Default: 10 seconds (matches h2 crate behavior). Set to None for no timeout (not recommended for production).
Implementations§
Source§impl Http2Settings
impl Http2Settings
Sourcepub fn firefox() -> Self
pub fn firefox() -> Self
Create Firefox 133 HTTP/2 settings.
Firefox differs from Chrome:
- HEADER_TABLE_SIZE: 65536 (same)
- ENABLE_PUSH: not sent (omitted from SETTINGS frame)
- MAX_CONCURRENT_STREAMS: not sent (omitted, defaults to unlimited)
- INITIAL_WINDOW_SIZE: 131072 (128KB, vs Chrome’s 6MB)
- MAX_FRAME_SIZE: 16384 (same)
- MAX_HEADER_LIST_SIZE: not sent (omitted)
Expected Firefox Akamai SETTINGS: 1:65536;4:131072;5:16384
Expected Firefox WINDOW_UPDATE: 12517377 (vs Chrome’s 15663105)
Trait Implementations§
Source§impl Clone for Http2Settings
impl Clone for Http2Settings
Source§fn clone(&self) -> Http2Settings
fn clone(&self) -> Http2Settings
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for Http2Settings
impl Debug for Http2Settings
Auto Trait Implementations§
impl Freeze for Http2Settings
impl RefUnwindSafe for Http2Settings
impl Send for Http2Settings
impl Sync for Http2Settings
impl Unpin for Http2Settings
impl UnsafeUnpin for Http2Settings
impl UnwindSafe for Http2Settings
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more