-
-
Notifications
You must be signed in to change notification settings - Fork 315
Description
We are using nghttpx to upgrade requests from HTTP to H2. nghttpx omits the :authority
pseudo-header when creating the request to forward on via H2, this appears to be consistent with the spec:
The :authority pseudo-header field includes the authority portion of the target URI ([RFC3986], Section 3.2). The authority MUST NOT include the deprecated userinfo subcomponent for http or https schemed URIs.
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). Clients that generate HTTP/2 requests directly SHOULD use the :authority pseudo-header field instead of the Host header field. An intermediary that converts an HTTP/2 request to HTTP/1.1 MUST create a Host header field if one is not present in a request by copying the value of the :authority pseudo-header field.
However, it appears that h2 incorrectly rejects the request with PROTOCOL_ERROR
when this happens. It also seems like there should also be some logging around this code path, but I couldn't get it to trigger.