h2
h2 copied to clipboard
Add option to send ORIGIN frame
This proposes adding an option to the h2::server::Builder config such that it sends the ORIGIN frame to connections.
- A method
originis added to the h2::server::Builder` struct.- We need to decide on the method argument. How should a user provide the origin-set?
- The specification says the origin must ASCII, so we could just ask for a list of strings.
- Or, we could force the user to provide a list of
(Scheme, Authority)tuples, since we have those types in thehttpcrate. - I'm not convinced which way is better myself.
- A new file would be added,
src/frame/origin.rs.- Implement encoding of the ORIGIN header according the RFC.
- We don't need decoding for now.
- Update the
src/proto/connection.rsfile such thatConnectionhas anOption<Origin>, and if set, is written after the initialSETTINGSframe.
cc @piscisaureus
@lucacasonato This would work for us right? AFAICT there would be no need to send the ORIGIN frame after processing the first request.
Yeah, this looks good. We can determine the value of the ORIGIN frame based on an SNI field in the TLS handshake.
I have no preference between strings and (Scheme, Authority).