I think the remaining decisions are:

- whether we should log a warning (but not throw an exception) when both
are present and equal.
- what to do if both are present but not equal, at least log a warning, but
not throw an exception because of the SHOULD?

Gary

On Sat, Oct 12, 2024, 7:17 AM Oleg Kalnichevski <ol...@apache.org> wrote:

> On Sat, 2024-10-12 at 07:04 -0400, Gary Gregory wrote:
> > Hi all,
> >
> > Considering the text you quote and the SHOULD definition in
> > https://datatracker.ietf.org/doc/html/rfc2119#section-3 then we are
> > indeed
> > in the wrong (IMO) and we need to allow for the Host header to be
> > processed
> > in the absence of the ":authority" pseudo-header.
> >
>
> For some reason HTTPD sends both. This is bizarre.
>
> Oleg
>
>
> > Gary
> >
> >
> > On Sat, Oct 12, 2024, 6:47 AM Oleg Kalnichevski <ol...@apache.org>
> > wrote:
> >
> > > Folks
> > >
> > > Presently HttpCore HTTP/2 protocol handler treats HTTP/2 request
> > > messages with a `Host` header as malformed.
> > >
> > > However I just recently discovered that Apache HTTPD happily sends
> > > us
> > > push promise requests with a `Host` header in them. Initially I
> > > thought
> > > it was a bug in HTTPD and was going to report it to the HTTPD devs.
> > > However I have gone through RFC 7540 a few more times I must admit
> > > there appears to be no clear statement defining `Host` header as
> > > illegal for HTTP/2 messages. There is only this: "Clients that
> > > generate
> > > HTTP/2 requests directly SHOULD use the ":authority" pseudo-header
> > > field instead of the Host header field".
> > >
> > > It looks like we are in the wrong here.
> > >
> > > How do you see it?
> > >
> > > Oleg
> > >
> > > ---
> > > DEBUG [requester-dispatch-1][org.apache.hc.core5.http.headers]
> > > c-0000000000 >> :method: GET
> > > DEBUG [requester-dispatch-1][org.apache.hc.core5.http.headers]
> > > c-0000000000 >> :scheme: http
> > > DEBUG [requester-dispatch-1][org.apache.hc.core5.http.headers]
> > > c-0000000000 >> :authority: localhost:32916
> > > DEBUG [requester-dispatch-1][org.apache.hc.core5.http.headers]
> > > c-0000000000 >> :path: /pushy
> > > DEBUG [requester-dispatch-1][org.apache.hc.core5.http.headers]
> > > c-0000000000 >> user-agent: Apache-HttpCore/5.3.1-SNAPSHOT
> > > (Java/17.0.12)
> > > DEBUG [requester-dispatch-1][org.apache.hc.core5.http2.frame] c-
> > > 0000000000
> > > > > stream 1 frame: HEADERS (0x1); flags: END_STREAM END_HEADERS
> > > > > (0x5);
> > > length: 59
> > > ...
> > > DEBUG [requester-dispatch-1][org.apache.hc.core5.http2.frame] c-
> > > 0000000000
> > > << stream 1 frame: PUSH_PROMISE (0x5); flags: END_HEADERS (0x4);
> > > length: 77
> > > DEBUG [requester-dispatch-
> > > 1][org.apache.hc.core5.http2.frame.payload]
> > > c-0000000000 << Promised stream 2
> > > ...
> > > DEBUG [requester-dispatch-1][org.apache.hc.core5.http.headers]
> > > c-0000000000 << :scheme: http
> > > DEBUG [requester-dispatch-1][org.apache.hc.core5.http.headers]
> > > c-0000000000 << :authority: localhost:32916
> > > DEBUG [requester-dispatch-1][org.apache.hc.core5.http.headers]
> > > c-0000000000 << :path: /aaa
> > > DEBUG [requester-dispatch-1][org.apache.hc.core5.http.headers]
> > > c-0000000000 << :method: GET
> > > DEBUG [requester-dispatch-1][org.apache.hc.core5.http.headers]
> > > c-0000000000 << user-agent: Apache-HttpCore/5.3.1-SNAPSHOT
> > > (Java/17.0.12)
> > > DEBUG [requester-dispatch-1][org.apache.hc.core5.http.headers]
> > > c-0000000000 << host: localhost:32916
> > > ...
> > > DEBUG [requester-dispatch-1][org.apache.hc.core5.http.headers]
> > > c-0000000000 << :status: 200
> > > DEBUG [requester-dispatch-1][org.apache.hc.core5.http.headers]
> > > c-0000000000 << last-modified: Sat, 12 Oct 2024 10:33:15 GMT
> > > DEBUG [requester-dispatch-1][org.apache.hc.core5.http.headers]
> > > c-0000000000 << etag: "15-624452194b0c0"
> > > DEBUG [requester-dispatch-1][org.apache.hc.core5.http.headers]
> > > c-0000000000 << accept-ranges: bytes
> > > DEBUG [requester-dispatch-1][org.apache.hc.core5.http.headers]
> > > c-0000000000 << content-length: 21
> > > DEBUG [requester-dispatch-1][org.apache.hc.core5.http.headers]
> > > c-0000000000 << date: Sat, 12 Oct 2024 10:33:18 GMT
> > > DEBUG [requester-dispatch-1][org.apache.hc.core5.http.headers]
> > > c-0000000000 << server: Apache/2.4.54 (Unix)
> > > DEBUG [requester-dispatch-1][org.apache.hc.core5.http2.frame] c-
> > > 0000000000
> > > << stream 1 frame: DATA (0x0); flags: END_STREAM (0x1); length: 21
> > >
> > >
> > >
> > >
> > > -------------------------------------------------------------------
> > > --
> > > To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org
> > > For additional commands, e-mail: dev-h...@hc.apache.org
> > >
> > >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org
> For additional commands, e-mail: dev-h...@hc.apache.org
>
>

Reply via email to