hyperium / hyperium/hyper

A way to send a request without the `:authority` pseudo-header?

Open
#2,208 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
16.3k
Forks
1.8k
Avg merge
1d 22h
Merged PRs (30d)
14

Description

:authority is optional in an HTTP/2 request, and the spec has this tidbit:

To ensure that the HTTP/1.1 request line can be reproduced accurately, this pseudo-header field MUST be omitted when translating from an HTTP/1.1 request that has a request target in origin or asterisk form (see RFC7230, Section 5.3).

However, using hyper::client::Client there's no way to make such a request. It can be done using hyper::client::conn but then I can't make use of the high-level client's ALPN/connection pooling support.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with hyper::client::Client and compare its request construction with hyper::client::conn, focusing on how the :authority pseudo-header is added. Review the ALPN and connection-pooling paths to determine where an option for omitting it could fit. Done means the high-level client can send a request without :authority while retaining those connection features, with coverage for the specified HTTP/2 case.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api, networking
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.