Skip to content

Conversation

@magurotuna
Copy link
Contributor

When sending HTTP/2 requests or push promises, promote the first valid Host header value to :authority and strip all Host headers from regular fields. This prevents emitting conflicting :authority and Host on the wire, aligning with RFC 9113 and the behavior of other HTTP/2 client implementations such as curl, Go's std, and Python's httpx.

Fixes #876

When sending HTTP/2 requests or push promises, promote the first valid
Host header value to :authority and strip all Host headers from regular
fields. This prevents emitting conflicting :authority and Host on the
wire, aligning with RFC 9113 and the behavior of other HTTP/2 client
implementations such as curl, Go's std, and Python's httpx.

Fixes hyperium#876
@seanmonstar
Copy link
Member

@cratelyn @olix0r I feel like we considered this a long time ago, and for transparent proxy purposes, chose not to normalize? But I can't remember if we decided that explicitly, or not. Checking if you have cases where this would be problematic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Outbound HTTP/2 frames can emit conflicting :authority and host headers

3 participants