mirror of https://github.com/nginx/nginx
When using HTTP/2 or prior the CGI/1.1 HTTP_HOST environment variable is set to the requested target host. However with HTTP/3 (or with HTTP/1.1 with the host contained in the request line) this was not happening. The HTTP/2 module uses the ':authority' pseudo-header field to set http_host. It was decided not to do that for HTTP/3. Instead we create a *new* default for http_host which will now use the HOST request header or :authority pseudo-header field. While this is a slight change in behaviour in regards to passing HTTP request header fields, it should be fine in practice as the HTTP host request header and the :authority pseudo-header field should be the same. Also the CGI specification (RFC 3875, 4.1.18) notes The server SHOULD set meta-variables specific to the protocol and scheme for the request. Interpretation of protocol-specific variables depends on the protocol version in SERVER_PROTOCOL. Link: <https://datatracker.ietf.org/doc/html/rfc3875#section-4.1.18>
parent
830599c5bc
commit
1182822ee3
Loading…
Reference in new issue