http2: accept requests without :authority pseudo-header?
- Dominant language
- C++
- Stars
- 2k
- Forks
- 874
- Avg merge
- 6d 15h
- Merged PRs (30d)
- 46
Description
As of 10.0.0, ATS http2 request parser rejects requests without the `:authority` pseudo-header. However, haproxy's http2 client will in many situations send requests that have the `Host` header but no `:authority`. There is an issue open about this on haproxy side: https://github.com/haproxy/haproxy/issues/2592. The underlying standardization issue seems to be different wording regarding conversion of a `Host` header into an `:authority` header in RFC 7540 vs. 9113, where haproxy hews to 7540 re: preserving http/1.1 semantics as far as possible when converting requests between protocols.
The haproxy issue is originally about Jetty, which apparently ended up adding support for `Host` as an alternative to `:authority`. What's the ATS view on this? Would it be reasonable to accept `Host` in lieu of `:authority` if the latter is missing?
Contributor guide
Research direction
Start by reviewing ATS's HTTP/2 request-parser behavior alongside RFC 7540, RFC 9113, and the linked HAProxy issue. Done means reaching and documenting an ATS decision on whether Host may substitute for a missing :authority pseudo-header, with the expected behavior and validation approach defined.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100