Description
This proposal request extends the current implementation of HTTP/2 in net/http
to support ORIGIN Frames standardised as RFC 8336. The ORIGIN Frames for HTTP/2 is an extension allowing web servers to give explicit indications to the clients about other hostnames that are reachable on the existing connection and are sent in the connection stream 0. As far as we're aware, no public ORIGIN Frame implementation exists.
The proposal involves the addition for a new "ORIGIN" FrameType
for FrameOrigin
with the value 0xC
to the HTTP/2 frame type registry along with associated frame parsing and creation methods. Changes also would introduce a new interface for OriginPusher
implemented by ResponseWriters to support pushing HTTP/2 ORIGIN Frames.
Recent experiments from Cloudflare (appearing at ACM Internet Measurement Conference, October 2022) indicate that the adoption of ORIGIN Frames could provide increased privacy by coalescing connections, without increasing operational complexities needed to help clients coalesce their connections by manipulating name-to-IP address mappings.
We are happy and would like to engage with the golang community to discuss, determine interest in this proposal, and then if or how best to upstream changes. Thanks.
@marwanfayed @jhoyla @Lekensteyn @SulemanAhmadd
Edit: We currently maintain a fork of our changes at go-originframe and net-originframe